Sujet : Re: Exercises, chap. 3, Graham
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lisp comp.lang.schemeDate : 11. Jul 2025, 01:42:38
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <104pmls$14ona$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
Alan Crowe wrote:
(defun occurrences-CL-condensed (list)
(sort (loop for x in (remove-duplicates list)
collect (cons x (count x list)))
#'> :key #'cdr))
Gauche Scheme
(define (occurrences-GS-condensed List)
(sort
(map
(^x (cons x (count (pa$ equal? x) List)))
(delete-duplicates List))
> cdr))
Testing.
(occurrences-GS-condensed '(a b c d e f b c d e b c d))
===>
((b . 3) (c . 3) (d . 3) (e . 2) (a . 1) (f . 1))
Shorter yet.
(define (occurrences-GS-condensed List)
(sort
(map
(^x (cons x (count (is x) List)))
(delete-duplicates List))
> cdr))
Given:
(define is
(case-lambda
[(x) (lambda(y) (equal? y x))]
[(pred x) (lambda(y) (pred y x))]
[(pred key x) (lambda(y) (pred (key y) x))]))