XPost: comp.lang.lisp
Pascal Bourguignon wrote:
(defun map-plist (fun plist)
(loop :for (key value) on plist by #'cddr
:collect (funcall fun key value))
...
Then you can write:
(map-plist (lambda (k v) (cons k (1+ v))) '(one 1 two 2 three 3))
Gauche Scheme
(use util.match) ;; match-lambda
(use gauche.lazy) ;; lslices
(map
(match-lambda [(k v) (cons k (+ 1 v))])
(lslices '(one 1 two 2 three 3) 2))
===>
((one . 2) (two . 3) (three . 4))
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)