chicken-users
[Top][All Lists]

## [Chicken-users] Lisp puzzles

 From: John Cowan Subject: [Chicken-users] Lisp puzzles Date: Tue, 21 Apr 2009 22:56:57 -0400 User-agent: Mutt/1.5.13 (2006-08-11)

```These are some very old Lisp puzzles I dug up and translated to Scheme.
The idea is to figure out what they do, ideally without testing them,
but if you *want* to test them, nobody can stop you.

;; What do these functions do?

(define (greussay l r)
(cond
((atom? l) #f)
((memq l r) #t)
((greussay (car l) (cons l r)) #t)
(else (greussay (cdr l) (cons l r)))))

(define (allen l)
(cond
((null? l) '())
((null? (cdr l)) l)
(else (cons (car (allen (cdr l)))
(allen (cdr (allen (cdr l))))))))

(define (samet x y)
(if (< x 2)
(+ y 1)
(samet (- x 1) (samet (- x 2) y))))

(define (goossens-moby l)
(if (null? (cdr l))
(car l)
(goossens-moby (cddr (append l (car l))))))

(if (= 0 n)
0

(cond
((= n 1) 1)
((= n 2) 1)

(define (goossens l x)
(if (null? l)
x
(goossens (reverse (cdr l)) (car l))))

;; Utility function

#;(define (atom? x) (not (pair? x)))

--
Henry S. Thompson said, / "Syntactic, structural,               John Cowan
Value constraints we / Express on the fly."                 address@hidden
Simon St. Laurent: "Your / Incomprehensible     http://www.ccil.org/~cowan