LISP is a lousy language

"LISP is a lousy language for doing any particular problem. What it is good for is figuring out the right language that you want and embedding that in LISP." (H. Abelson)…

Pairs

let cons = (a, b) => (pick) => ({1: a, 2: b}[pick]); let car = (x) => x(1); let cdr = (x) => x(2); What if we could build pairs out of nothing at all?…

Means of abstraction

"When somebody tells you 'I have a new programming language', you should not ask: 'How many characters does it take to invert a matrix?'; that is irrelevant, what you should say is: 'if the language does not come with matrices built-in, how can I build them and what are…