• map-plist

    From B. Pym@Nobody447095@here-nor-there.org to comp.lang.lisp,comp.lang.scheme on Wed Jul 2 03:35:06 2025
    From Newsgroup: 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))
    --- Synchronet 3.21d-Linux NewsLink 1.2