Description
Notwithstanding that I am probably too much of a pedantic to really have an unbiased opinion of the contents of this list, why is buildyourownlisp in the list? It's confusing and doesn't even pretend to have Lisp semantics. An example:
; First, Second, or Third Item in List
(fun {fst l} { eval (head l) })
(fun {snd l} { eval (head (tail l)) })
(fun {trd l} { eval (head (tail (tail l))) })
car fst calls eval? In my lisp?
(fun {take n l} {
if (== n 0)
{nil}
{join (head l) (take (- n 1) (tail l))}
})
Er, nil is a function as well? And what's this about q-expressions? Did I fall asleep in the middle of my reading of Recursive Functions of Symbolic Expressions and Their Computation by Machine? They seem to be thrown in randomly. This book really just describes all the kludges the author put into an interpreter and makes it sound like an educational project. I heard the C code is also not great, but I can't read C too well.
I must have fallen asleep during the introduction too, after their reasoning for using C:
Conceptually, syntactically, and in implementation, this Lisp has a number of differences to other major brands of Lisp. So much so that I'm sure I will be getting e-mails from Lisp programmers telling me it isn't a Lisp because it doesn't do/have/look-like this or that.
I've not made this Lisp different to confuse beginners. I've made it different because different is good.
Ah, alright. It just deviates in ways that make it completely irrepresentative of Lisp implementation or even its basic semantics. Back to my armchair then.