On Jan 8, 2014, at 9:50 AM, Liam Proven <lproven at gmail.com> wrote:
On 8 January 2014 05:31, Mouse <mouse at
rodents-montreal.org> wrote:
Incidentally, "homoiconicity" just means that they wrote the language
back-end and then knocked off without bothering with the front-end,
so you have to enter your program as a raw AST instead.
Careful. Not only is this statement wrong, it comes awfully close to
exhibiting zealotry of your own. (If you don't understand why or how
it's wrong, I refer you to the Wikipedia page "Homoiconicity".)
I think you misunderstand what Peter was alluding to.
Remember that S-expressions were only meant to be an internal
representation and the original plan was that programmers would
actually use M-expressions with a more traditional notation.
This never happened because some programmers found that it was
perfectly possible to work in S-expressions, and proficiency in doing
so has become something of a shibboleth among Lispers: "real men work
in S-expressions?.
I thought it was ?real programmers work in machine code? (see ?The story of Mel, a real
programmer?). :-)
This has led to the neglect of Lisp-like languages or extensions with
higher-level syntax, such as Dylan, CGOL or Sweet Expressions, and
erects a huge and forbidding barrier to the adoption of Lisp.
Then again, the only AI language I?ve run into that isn?t Lisp is just as odd
syntactically in a very different way ? POP-2, brought to you by the AI folks at U of
Edinborough (UK). Just like APL, it has the rule that all operators associate in the same
direction. Unlike APL, it solved the conflict between assignment and the rest by making
assignment associate left to right, so you end up with statements that look like this:
a+1 -> a
I haven?t seen it since college; I wonder if there are any implementations or users still
left.
paul