Re: How to improve my summarizing code

Liste des GroupesRevenir à cl lisp 
Sujet : Re: How to improve my summarizing code
De : No_spamming (at) *nospam* noWhere_7073.org (B. Pym)
Groupes : comp.lang.lisp
Date : 25. Jun 2024, 07:56:39
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v5dpn6$1elf9$1@dont-email.me>
References : 1
User-Agent : XanaNews/1.18.1.6
On 6/23/2024, B. Pym wrote:

(defun summarize (list)
   (loop with summary = nil
         for elt in list
         for sum = (find (first elt) summary :test #'eql :key #'first)
         if sum do (incf (second sum) (second elt))
         else do (push elt summary)
         finally (return summary)))
 
CL-USER 2 > (summarize '((c 7) (a 1) (a 3) (b 1) (b 10) (b 100)))
((B 111) (A 4) (C 7))

(define (summarize alist)
  (let1 keys (delete-duplicates (map car alist))
    (map
      (lambda(k)
        (list k
          (apply +
            (filter-map
              (lambda(x) (and (equal? k (car x)) (cadr x)))
              alist))))
      keys)))

(summarize '((c 7) (a 1) (a 3) (b 1) (b 10) (b 100)))
  ===>
((c 7) (a 4) (b 111))
 


Date Sujet#  Auteur
24 Jun 24 * Re: How to improve my summarizing code4B. Pym
24 Jun 24 +- Re: How to improve my summarizing code1B. Pym
24 Jun 24 +- Re: How to improve my summarizing code1B. Pym
25 Jun 24 `- Re: How to improve my summarizing code1B. Pym

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal