4 ms·
Io (http://www.iolanguage.com http://www.iolanguage.com) is a bit of an exception then. Its homoiconic but its not a Lisp. And it doesn't have macros yet its
by draegtun 16y ago
Io (http://www.iolanguage.com http://www.iolanguage.com) is a bit of an exception then.
Its homoiconic but its not a Lisp. And it doesn't have macros yet its code is fully inspectable/modifiable at runtime in an very easy & elegant way.
For eg. if you wanted to have a line like this:
list(1, 2, 3) each foo bar
which needs to be transformed into below at runtime:
list(1, 2, 3) foreach(foo bar)
Then this can be done like so:
List each := method(
m := call message
m setName("foreach") setArguments(list(m attached)) setAttached(nil)
self doMessage(m)
)
ref: http://www.iolanguage.com/blog/blog.cgi?do=item&id=86 http://www.iolanguage.com/blog/blog.cgi?do=item&id=86