Skip to content

Why is buildyourownlisp in the (bottom of the) list? #14

Open
@no-defun-allowed

Description

@no-defun-allowed

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions