... what ... part ... generational ... course, ... my 'squirrel' is stackless. I switched from 'stackful' to 'stackless' while I was prototyping. I personally...
Hello, I'd like to ask you all what's your favorite way of extending a "closed" class. That is, how can you add behaviour to a class you don't control. ... //...
... I've taken a (quick) look at those languages. It seems like you don't have data protection (private, protected, public ...). If your methods are external...
... CLOS doesn't try to protect data fields of objects. In Dylan data fields are accessed through generic functions which can be declared private to a module. ...
... Well, ok, I meant the style is not "object.message(arguments)" (or a variant) but rather "function(object1, object2 ...)" and that was what I meant by ...
... You can make "object.message(arguments)" a syntactic sugar for "message(object, arguments)", and thus have generic functions with the syntax resembling...
... Yes, but which instance is used to dispatch in a single dispatch language ? or do you have multiple dispatch ? ... Well, at compil time, I'll have to look...
... Generic functions are dispatched on multiple arguments in all incarnations I know. Many languages just dispatch on all arguments. In my language you ...
... That's what Dylan does. I think it's the best kind of OO because you can pass around methods that aren't dependent on a specific class/object, yet it's...
My favorite way is to not use classes but instead prototypes or generic functions. In both of those, you don't have any sort of static class definition, and ...
... Use a language that allows you to do this directly. For example, common practice in Smalltalk is to add methods to the root class, Object, or elsewhere on...
... The purpose is precisely to add features to the language so that it supports it ! :-) ... I don't know if it's dangerous or not. I'm just starting to think...
... ?? Are you talking about the way I typecheck ? If that's the case, I don't understand your reasonning here. Can you explain ? When I mean "each class", I...
... Although I don't personally like this, there are reasons for doing this. If you have dynamic typing, it could be "dangerous" because of a runtime error....
... Well, it seems everybody agree Ruby has the good way. One question though : when you start to extend a class 'C' in a different place than the original one...
... What happens if two independent packages try to add methods with the same name (either to the same class or to a class and its subclass, but - since they...
On Mon, 05 Apr 2004 16:12:40 +0200, "Marcin 'Qrczak' Kowalczyk" ... Dylan does this. It is common to use a 'getter' or 'setter' like: myobject.var := 5; ...
Chris Double
chris.double@...
Apr 5, 2004 10:26 pm
1551
I'm wrapping up implementing macros for my language Scarlet and I've been pondering the utility of making them Turing complete. Scarlet is a dynamic language...
On Mon, 5 Apr 2004 13:24:55 +0200, "David Jobet" <david.jobet@...> ... In Dylan the data hiding is performed at the module level. So you'd have your...
Chris Double
chris.double@...
Apr 6, 2004 12:00 am
1553
... They don't dispatch on an argument. They dispatch on the type substituted to a type variable in a type pattern. For example Haskell's (==) compares two...
... I didn't say that :-) I don't like classes which contain methods at all. ... Yes. Even without that you can write obj.instance_eval { ...code accessing...
Although macros are convinient, making them turing-complete is only asking for abuse. You mention C++ as an example, but in C++, templates are usually just...
... I don't know if I agree with that. The parallels with C++ templates seem pretty strong and Turing complete templates have enabled the creation of many...
... Well, I mean in a class based language ! :-) Unfortunately, Nosica is class based and methods belong to the class. ... I do agree the author of the...
I don't think pattern matching is awkward in dynamic languages in general, it's just awkward where you're dealing with imperitive methods instead of standalone...