Re: tasters wanted

Liste des GroupesRevenir à cl lisp 
Sujet : Re: tasters wanted
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lisp
Date : 18. Jul 2024, 19:55:36
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v7bkuk$2hcim$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
Ken Tilton wrote:

Ooh! Ooh! Lemme try again!
 
(defun collect-repeats-simple (sorted-list &key (test 'eql))
   (loop with acc and tail
       for a in sorted-list
       for b in (cdr sorted-list)
 
       if (funcall test a b)
       if acc do (setf tail (rplacd tail (list b)))
       else do (setf acc (list* a (setf tail (list b))))
       else when acc collect acc into result
       and do (setf acc nil)
 
       finally (return (nconc result
                         (when acc (list acc))))))
 
God I love rplaca/d!

Testing:

(collect-repeats-simple '(2 2 3 4 5 5 7 8 8))
  ===>
((2 2) (5 5) (8 8))

Gauche Scheme

(use gauche.collection) ;; fold2

(define (monotonic the-list :key (test equal?))
  (receive (tmp result)
    (fold2
      (^(x tmp result)
        (if (or (null? tmp) (test x (car tmp)))
          (values (cons x tmp) result)
          (values (list x) (cons tmp result))))
      '() '()
      the-list)
    (reverse (map reverse
      (if (pair? tmp) (cons tmp result) result)))))

(monotonic '(0 2 3 4 0 5 7 9 6) :test >)
  ===>
((0 2 3 4) (0 5 7 9) (6))

(define (collect-repeats sorted-list :key (test equal?))
  (remove (^x (null? (cdr x)))
    (monotonic sorted-list :test test)))

(collect-repeats '(2 2 3 4 5 5 7 8 8))
  ===>
((2 2) (5 5) (8 8))

(collect-repeats '(2 2 3 4 5 5 7 8 8 9))
  ===>
((2 2) (5 5) (8 8))

Date Sujet#  Auteur
18 Jul 24 * Re: tasters wanted9B. Pym
18 Jul 24 +* Re: tasters wanted7B. Pym
15 Aug 24 i`* Re: tasters wanted6B. Pym
15 Aug 24 i `* Re: tasters wanted5B. Pym
15 Aug 24 i  +* Re: tasters wanted2B. Pym
15 Aug 24 i  i`- Re: tasters wanted1Kaz Kylheku
17 Aug 24 i  `* Re: tasters wanted2B. Pym
18 Aug 24 i   `- Re: tasters wanted1Jeff Barnett
19 Jul 24 `- Re: tasters wanted1Kaz Kylheku

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal