On 25 April 2012 16:47, Tobias C Rittweiler tcr@freebits.de wrote:
I was pleased to discover that DESTRUCTURING-CASE made it into Alexandria meanwhile. Very nice! This allows me to share the little gem that I'm attaching with this posting. It's a handy macro to make writing macros like DEFPACKAGE, DEFGENERIC of DEFREADTABLE easy like a breeze.
Nice!
Unless I misread this, duplicate clauses cause the earlier one to be discarded? Signaling an error instead might be better, though a fairly common pattern might also be served by special casing clauses of the form
(:keyword &append stuff)
or something like that, which would cause duplicate clauses to have their contents merged.
Or maybe that should be factored into a separate function MERGE-ALIST, for preprocessing the clauses?
function MERGE-ALIST keys alist &optional (merge #'append)
...or something along those lines?
Cheers,
-- Nikodemus