
On Wed, 2009-01-14 at 11:06 -0800, Max Rabkin wrote:
On Wed, Jan 14, 2009 at 10:48 AM, Jonathan Cast
wrote: Do you have an example of a macro that can't be replaced by higher-order functions and laziness?
I believe I do: one macro I found useful when writing a web app in Lisp was something I called hash-bind, which binds variables to the values in a hashtable, with the variable names as keys. For example:
(hash-bind (a b) hashtable body) == (let ((a (lookup hashtable "a")) (b (lookup hashtable "b")) body)
I found this very useful in places where I was given URL request parameters in a hashtable and wanted to extract some variables from it. I don't believe it can be replaced by a higher order function (though I may be wrong).
Thanks! When you *know* there's a good reason people say something, and can't find a good example of *why*, it's a tremendous relief when when you find one. Sort of restores your faith in humanity :) jcc