the big picture: origins, future directions
deep into functions
In which we meet closures, scope, patterns, macros, “the strangest artifact in computer science”, and more.
Anything you can write with variables you can write without variables. You can use a function closure instead to do the same thing… Suppose we had a language in which we didn’t have variables, and in which we didn’t have assignment, and we didn’t have named functions, could you still do recursion? And it turns out you can. Here is the strangest artifact in computer science. It’s called the Y Combinator… If you can figure this out, you can call yourself a computer scientist… In terms of increasing your powers as programmer, this is the stuff to be playing with. You can get really, really deep.