4 ms·
The "claim to fame" has more to do with homoiconicity, ie. that the language is its own syntax tree. This allows you to extend the language in arbitrarily compl
by mjburgess 12y ago
The "claim to fame" has more to do with homoiconicity, ie. that the language is its own syntax tree. This allows you to extend the language in arbitrarily complex ways in the language itself - a consequence of this is the simplicity of writing a self-interpreter.
Languages involve a lot of apparent mystification, in part because the syntax tree and the semantics of the syntax tree are not the program you are writing. Who knows what "class X {}" actually does to the (virtual) machine?
By essentially providing a 1:1 correspondence between the "real" semantics and the "apparent" semantics, programming this way can seem magical compared to other languages.
With assembly you arent taking objects of the language and making them objects of a metalanguage, ie. you arent preserving semantics when you abstract. All you're doing is creating hacks on top of the basic semantics, so in effect, introducing a new language (of specialized jumps, etc.).
- deleted 12y ago[deleted]
- deleted 12y ago[deleted]
- Blackthorn 12y agoWhere this argument loses me is that I have yet to see a single Lisp person going around extolling the virtues of Prolog, a language that is also homoiconic and has macros. (If Lisp people want to start doing that though, I'd be happy. Prolog is great.)
- molloy 12y agoMaybe that's because a "Lisp person" who did so would be considered a "Prolog person." :) I'll give Prolog a shot!
- hga 12y agoA lot of Lispers are interested in logic programming, if not Prolog. It's in SICP, it's the topic of The Reasoned Schemer (www.amazon.com/Reasoned-Schemer-Daniel-P-Friedman/dp/0262562146/), Shen includes a Prolog and you can use its syntax: http://www.shenlanguage.org/learn-shen/prolog.html http://www.shenlanguage.org/learn-shen/prolog.html So you'll have to modify your statement at minimum to "a single person other than Mark Tarver" ^_^.
- mjburgess 12y agoWell I would, I often mention logic programming in the same list as functional. However, lisp is simply awesome/powerful/etc. while logic and more formal-abstract kinds of programming (from Prolog to Haskell) are "difficultly" awesome.