3 ms·
"you can basically choose which level of abstraction do you want; the language will not limit your choices here." The language absolutely limits you in terms o
by betterunix 14y ago
"you can basically choose which level of abstraction do you want; the language will not limit your choices here."
The language absolutely limits you in terms of choosing your abstractions. You can only redefine the operators already in the language. Adding a feature like continuations or dependent types would require a rewrite of your compiler. There is no notion of a metaobject protocol. At best, you can get some of the power of these abstractions by using a brittle mess of templates and objects, and you'll be left with code that is almost unreadable as a result.
If you want to see a language that actually allows you to choose any abstraction, even those that were unknown when the language was developed, look at Lisp and its macro system.