This Calls for Dispute
Eric Normand writes about expressing higher-order functions. His case study is basically:
(mapcar (lambda (x) (* x 2)) list)
One of the expressions this can be given is:
(mapcar (curry #'* 2) list)
and another is
(mapcar #L(* 2 _) list)
I realize that some people are really fond of #L. Fine, it's fine -- use it. Let's just be fair about the comparison...
Problems of #L according to Eric:
The same for CURRY:
Huh? #' gets in the way and #L does not? How is the CURRY klunky? I just so do not get this. That said, I generally prefer the explicit lambda -- though there are exceptions.
Finally, I really don't understand why to use a reader-macro for this when regular macros work for similar purposes more then fine. Use macros when fuctions won't do, and use reader-macros when macro's won't do is a good rule of the thumb in my books.
(defmacro <- (&body body) `(lambda (_) ,@body))
...with the added benefit that the user can macroexpand the form for instant comprehansion.
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!