[alexandria-devel] REMOVEF and DELETEF

Chun Tian (binghe) binghe.lisp at gmail.com
Sat Feb 23 17:00:33 UTC 2008


Hi, Alexandria Developers

I saw this two modify macro in sequences.lisp:

(define-modify-macro removef (item &rest remove-keywords)
   (lambda (seq item &rest keyword-arguments)
     (apply #'remove item seq keyword-arguments))
   "Modify-macro for REMOVE. Sets place designated by the first  
argument to
the result of calling REMOVE with ITEM, place, and the REMOVE- 
KEYWORDS.")

(define-modify-macro deletef (item &rest remove-keywords)
   (lambda (seq item &rest keyword-arguments)
     (apply #'delete item seq keyword-arguments))
   "Modify-macro for DELETE. Sets place designated by the first  
argument to
the result of calling DELETE with ITEM, place, and the REMOVE- 
KEYWORDS.")

It seems that the use of DEFINE-MODIFY-MACRO doesn't match the ANSI CL  
standard. HyperSpec[1] says the 3rd argument of DEFINE-MODIFY-MACRO  
must be a symbol, not a lambda expression. A new version of LispWorks  
(still under test) will cannot compile these two definitions:

	ANSI CL requires the argument to be a symbol, so I think ARNESI is  
wrong.  We
	changed this in LW 5.1. --- Martin Simmons from LispWorks, Ltd.
Hope you can fix this, thanks.

Chun TIAN (binghe)

[1] http://www.lispworks.com/documentation/HyperSpec/Body/m_defi_2.htm#define-modify-macro

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/alexandria-devel/attachments/20080224/62cb1389/attachment.html>


More information about the alexandria-devel mailing list