fork(1) download
  1. ; catalan triangle
  2.  
  3. (define (next-row xs)
  4. (let loop ((xs (cdr xs)) (ys (list 1)))
  5. (if (null? xs) (reverse (cons (car ys) ys))
  6. (loop (cdr xs) (cons (+ (car xs) (car ys)) ys)))))
  7.  
  8. (define (catalan-triangle n)
  9. (let loop ((n n) (xs (list (list 1))))
  10. (if (zero? n) (reverse xs)
  11. (loop (- n 1) (cons (next-row (car xs)) xs)))))
  12.  
  13. (display (catalan-triangle 8))
Success #stdin #stdout 0s 42848KB
stdin
Standard input is empty
stdout
((1) (1 1) (1 2 2) (1 3 5 5) (1 4 9 14 14) (1 5 14 28 42 42) (1 6 20 48 90 132 132) (1 7 27 75 165 297 429 429) (1 8 35 110 275 572 1001 1430 1430))