Somehow I find it kind of sad, that over 50 years later, we still lack a programming language clearly more advanced than lisp. Either that or lisp just grows with the times better than most 0.o.o.0.

In reading through Steve Yegge’s old blog, I found a statement that perfectly summarises what selecting a programming language for a complex project is like:

So… the best way to compare programming languages is by analogy to cars. Lisp is a whole family of languages, and can be broken down approximately as follows:

  • Scheme is an exotic sports car. Fast. Manual transmission. No radio.
  • Emacs Lisp is a 1984 Subaru GL 4WD: “the car that’s always in front of you.”
  • Common Lisp is Howl’s Moving Castle.

This succinct yet completely accurate synopsis shows that all Lisps have their attractions, and yet each also has a niche. You can choose a Lisp for the busy person, a Lisp for someone without much time, or a Lisp for the dedicated hobbyist, and you’ll find that no matter which one you choose, it’s missing the library you need.

Except replace the lisp dialects with every language ever written, and factor in portability issues, and you now know what it’s like to be a multi-lingual programmer xD.

Common Lisp ?

Hmm, Steel Bank Common Lisp (SBCL – compiled), CLisp (Bytecode), or Armed Bear Common Lisp (Java bytecode)

Decisions, decisions ^_^

Should reading lisp be considerd hazardous?

my eyes are starting to see ) and jump back to matching (, then reparse what I just read, jump back to ); like a bloody type writer, lol

(define (factorial n k)
(= n 0 (lambda (b)
(if b
(k 1)
(- n 1 (lambda (nm1)
(factorial nm1 (lambda (f)
(* n f k)))))))))

if I wasn’t hungry, I would think that I was getting dizzy after 30min of this kinda stuff :. I generally don’t mind the parens, but I find assembly easier on the brain sometimes…

Losing the war: On evading lisp


Why does Lambda Calculus and Scheme have to be so damn interesting!!!

I need to be kicking myself into a standard tool kit of language+libs+utils, not learning a new one lol. But I have an addiction to learning things :

Scheming flirtations

Trying to wrap my head around Schemes syntax, which is quite a different style of writing then I am used to.

An example at the childs level:


(define x 2)
(define y 5)

(if (> y x)
(display y)
(display x))

; which could also be written as if one wanted to use cond instead
(cond ((> y x) (display y)) ((< y x) (display x)))

C and related languages:

int x = 2;
int y = 5;

if (y > x) {
printf("%d", y);
} else {
printf("%d", x);

/* which could also be written on one line as */
if (y > x) printf("%d", y); else printf("%d", x);

I don’t really have a problem with the parenthesesification, but the prefix notation :. Let’s just say, I’ve used infix notation since kindergarten, and internally my brain does too by now lol.

Notational example
prefix + 2 2 –> 4
infix 2 + 2 –> 4
postfix 2 2 + –> 4

Getting my head to live with prefix notation, is the only thing that is pushing my luck, so far that is….

This is how I spend a night off work? I think I really need to get a better life again >_>