• Re: Brevity vs. Lispicity

    From B. Pym@21:1/5 to Bill Atkins on Wed Jun 18 11:29:20 2025
    Bill Atkins wrote:

    (defun occurrences (list)
    (let (result)
    (dolist (x list)
    (if (assoc x result)
    (incf (cdr (assoc x result)))
    (push (cons x 1) result)))
    (sort result #'> :key #'cdr)))

    Gauche Scheme:

    (define (occurrences input)
    ;; Create table (association list).
    (define result (map (cut cons <> 0) (delete-duplicates input)))
    (dolist (x input) (inc! (cdr (assoc x result))))
    (sort result > cdr))

    (occurrences '(a b c d d d d c c b))
    ===>
    ((d . 4) (c . 3) (b . 2) (a . 1))

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)