3 ms·
I'd go for Scheme or even Factor for code-as-data. (Joy, Factor's ancestor, is really code-as-data, and unlike Emacs Lisp it's hygienic because there are no va
by johnwcowan 15y ago
I'd go for Scheme or even Factor for code-as-data. (Joy, Factor's ancestor, is really code-as-data, and unlike Emacs Lisp it's hygienic because there are no variables. Scheme also has the most Perlis-ish macros.
I think either J or K is better than APL in this category.
I would also add Pure <http://pure-lang.googlecode.com> http://pure-lang.googlecode.com> for general term rewriting (lambda calculus? Just a special case!)
- wrp 15y agoI see your point about Scheme. I had wanted to stay with a Lisp, since the Scheme family has a different orientation, with the emphasis on functional techniques among other things. But maybe the more powerful macro system would justify the extra learning load. I would need some convincing with J, though. I've studied both and I thought APL had much better tutorial material, development tools, and conceptual straightforwardness. I didn't stick with J for very long, so I'm sure I missed important aspects of its use. Could you explain some ways in which you think J gives a better demonstration of the possibilities of the array-oriented paradigm?
- wrp 15y agoI think more people would give Pure a try if it wasn't advertised primarily as a term rewriting language. Pure is a dynamically-typed, eager, impure functional language with Haskell-ish syntax. It also has optional type declarations and forced lazy evaluation. "Term rewriting" is the evaluation model.