An attempt to describe three well-known function calling conventions in terms of bindings.
Posts tagged lisp
I find the best way to think about this is to think in terms of bindings, rather than environments or frames, which are simply containers for bindings.
I’ve recently been writing some Emacs Lisp code to do some massaging of files. Quite apart from having forgotten how primitive elisp is, I hadn’t realised before how hostile dynamic scope was for macros in particular.
Lots of people, even famous Lisp hackers, like to claim that ‘Python can be seen as a dialect of Lisp with “traditional” syntax’.
Being famous does not make them right.
I wanted to see if I could write a mildly complicated macro in Racket without becoming too confused. I can, although I am not sure it is terribly idiomatic.
Three approaches to solving problems on computers.
When I first used Lisp, the common refrain was that Lisp was dead.
The second part of my notes on writing macros in Racket.
I’ve written in Lisp for a long time, but I’ve never used a hygienic macro system in any way other than the most simple. Here are some initial notes on my experiences learning Racket’s macro system.
Programming is not meant to be easy and it’s important to make sure that it is as cryptic as possible otherwise people other than cult members might be able to understand it. Of course, you also need to make sure it’s pure, because otherwise cult members will laughingly throw you into a pit full of spikes and the rotting remains of other heretics.