• map-plist

    From B. Pym@21:1/5 to Pascal Bourguignon on Wed Jul 2 03:35:06 2025
    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)