Re: Confused about Scheme...???

Liste des GroupesRevenir à cl lisp 
Sujet : Re: Confused about Scheme...???
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lisp comp.lang.scheme
Date : 06. Aug 2024, 17:37:40
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v8tfvu$1lupu$1@dont-email.me>
References : 1
User-Agent : XanaNews/1.18.1.6
B. Pym wrote:

    In short, 'reduce-list', is take a list of variable length, 'b',
below and reduce it if the (caar ls) and (caadr ls) are equal...this
is the first atom within the pair of consecutive sublists and if this
is true contruct a list,  (list (caar ls) (+ (cadar ls) (cadadr ls)))
, and add second atom of the consective pairs.  For example,
(reduce-list b) ==> ((4 3) (3 7) (2 1) (1 2) (0 1)).  I can get it to
work for the first two terms without using recursion, produces (4 3),
but when I implement recursion it barfs.  Could some one tell me what
I'm doing wrong because I know that I'm trying to do to much at once?
 
 
-Conrad
 
 
(define (reduce-list ls)
    (cond ((null? ls) ls)
    (else
      (cond ((null? (cadr ls)) ls)
      (else
        (cond ((eq? (caar ls) (caadr ls))
                 (list (caar ls) (+ (cadar ls) (cadadr ls)))
                 (reduce-list (cdr ls)))
              (else (list (car ls) (reduce-list (cdr ls)))))))))))
 
 
(define b '((4 1) (4 2) (3 3) (3 4) (2 1) (1 2) (0 1)))
 
(reduce-list b)
 
newLISP
 
(define b '((4 1) (4 2) (4 80) (3 3) (3 4) (2 6) (9 2) (9 5)))
 
(define (meld xs)
  (local (K A B)
    (if (null? xs)
      '()
      (let (u (unify '((K A) (K B)) (0 2 xs)))
        (if u
          (begin (bind u) (meld (cons (list K (+ A B)) (2 xs))))
          (cons (first xs) (meld (rest xs))))))))
 
(meld b)
 
((4 83) (3 7) (2 6) (9 7))

Shorter:

(define (meld xs  , K A B)
  (if (null? xs)
    '()
    (if (unify '((K A) (K B)) (0 2 xs))
      (begin (bind $it) (meld (cons (list K (+ A B)) (2 xs))))
      (cons (first xs) (meld (rest xs))))))


Date Sujet#  Auteur
6 Aug 24 * Re: Confused about Scheme...???2B. Pym
6 Aug 24 `- Re: Confused about Scheme...???1B. Pym

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal