Frank Schwieterman wrote:
(defun difference (param)
(if (> (length param) 1)
(if (<= (abs (- (first param) (first (rest param)))) 1 )
(difference (rest param))
nil
)
T
)
)
Gauche Scheme
(define (diff1? xs)
(every
(lambda (a b) (= 1 (abs (- a b))))
xs
(cdr xs)))
(diff1? '(2 3 4 3 4 5 6 7 8 9 8))
===>
#t
(diff1? '(2 3 4 3 4 5 6 7 8 9 8 0))
===>
#f
On 6/14/2024 8:45 PM, B. Pym wrote:
Frank Schwieterman wrote:
....I am Lisp beginner and I am doing a simple execise on lisp. I was asked >>>> to write a lisp program , by using either recursion or do, to return
true if the difference between each successive pair of the them is 1. (or LESS)
ie:
(difference '(2 1))T
(difference'(3 4 5 6 5 4))T
(differnce '(3 4 5 3))NIL
(defun difference (param)
(if (> (length param) 1)
(if (<= (abs (- (first param) (first (rest param)))) 1 ) >>> (difference (rest param))
nil
)
T
)
)
(define (diff1p? x)
(or (null? x)
(null? (cdr x))
(and (= 1 (abs (- (car x) (cadr x)) ))
(diff1p? (cdr x)) )))
Gauche Scheme
(define (diff1? xs)
(every
(lambda (a b) (= 1 (abs (- a b))))
xs
(cdr xs)))
(diff1? '(2 3 4 3 4 5 6 7 8 9 8)) ===> #t
(diff1? '(2 3 4 3 4 5 6 7 8 9 8 0)) ===> #f
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 442 |
Nodes: | 16 (2 / 14) |
Uptime: | 34:10:55 |
Calls: | 9,153 |
Calls today: | 4 |
Files: | 13,433 |
Messages: | 6,043,784 |