[armedbear-devel] lambda-list error at compilation

Mark Evenson evenson at panix.com
Tue May 11 13:34:48 UTC 2010

On May 7, 2010, at 6:53 PM, Alan Ruttenberg wrote:

> The following works as expected when evaluated, but throws an error when compiling.
> (defun hashmap-to-hashtable (hashmap &key (keyfun #'identity) (valfun #'identity) (invert? nil)
> 			       &allow-other-keys &rest rest)
>  (let ((keyset (#"keySet" hashmap))
> 	(table (apply 'make-hash-table (remf :invert? (remf :valfun (remf :keyfun rest))))))
>    (with-constant-signature ((iterator "iterator" t) (hasnext "hasNext") (next "next"))
>      (loop with iterator = (iterator keyset)
> 	 while (hasNext iterator)
> 	 for item = (next iterator)
> 	 do (if invert?
> 		(setf (gethash (funcall valfun (#"get" hashmap item)) table) (funcall keyfun item))
> 		(setf (gethash (funcall keyfun item) table) (funcall valfun (#"get" hashmap item)))))
>    table)))
> -> Error
> &REST/&BODY must be followed by a variable.
>   [Condition of type PROGRAM-ERROR]

Confirmed with a simplified error form not using JSS filed as [ticket

[1]: http://trac.common-lisp.net/armedbear/ticket/96

"A screaming comes across the sky.  It has happened before, but there is nothing to compare to it now."

More information about the armedbear-devel mailing list