archives

Google Magic

I have characterized myself recently as a recovering typoholic and a convert to Visual Basic and in my various talks I use the paper on type-indexed rows that I wrote together with Mark Shields as the prime example of how deep you can fall as an addict to static typing.

As many of us undoubtedly do every once in a while, I was egosurfing for “typoholic”; vague hoping it would be a Google wack. However, much to my astonishment the first hit is actually our paper on type-indexed rows (alternatively type in typoholic on the Google homepage and hit “I’m feeling lucky”). That page does not contain the word "typoholic" and until now there were no links pointing to it!

If you ask me, this is pure voodoo. Perhaps I should start wrapping myself in aluminum foil to protect me against the Google mind control waves.

Multimethods in a latently typed language?

(I posted this initially to comp.lang.misc and was told to try here instead)

I'm implementing a vaguely scheme-like scripting language and I'm a
unclear on how to make multimethods work (not just within an object
system, but with all the language types). Are "types" just symbols or
do they require their own namespace?

(defun f ( (x 'int) (y 'string)) (...code))
-or-
(defun f ( (x (resolve-type int)) (y (resolve-type string)) ) (...code))

Should I combine the concept of class and and type? This seems
problematic since I want objects to be runtime-modifiable (add/remove
methods). I was also considering making predicate types as the basis
for method resolution (obj has_method x, etc..), but then how do I fit
in primitive types?

I guess I'm a bit overwhelmed with type systems and would appreciate
some direction.

Thanks,
-Alex