I love reading Lisp blogs; for example in this posting we have a sketch of how to define a function G that you can use when the debugger decides you neglected to write a function F. You then bind G to the F’s function definition and tell the debugger to try again. I can’t begin to imagine how you’d do that in most languages. In Common Lisp is not even that unusual; I’ve certainly done things along these lines.
Going back into the late 1970s I’ve had a joke about how lazy evaluation can be taken to extreme lengths. You build your operating system and wait until one of your developers actually writes some code. That code invokes a operating system call. You discover you haven’t written that call yet (in fact you haven’t written anything yet). So you call the routine who’s job it is to see that code get’s written. Oh my that’s not written yet either. So the error handler for that invokes the get programmer assigned handler … which invokes the project manager handler … which invokes the HR hiring manager handler … Later when this all unwinds the program just works. So damn it, just ship it!