sicp_exercices/2.2/ex2.33.scm
Yann Esposito (Yogsototh) 38432cd0ac Reorganized a bit
2011-09-15 16:35:55 +02:00

26 lines
618 B
Scheme

; Exercise 2.33
(newline) (display "Exercise 2.33") (newline)
; -- Defs --
(define nil ())
(define (accumulate op initial sequence)
(if (null? sequence)
initial
(op (car sequence)
(accumulate op initial (cdr sequence)))))
(define (amap p sequence)
(accumulate (lambda (x y) (cons (p x) y)) nil sequence))
(display (amap square (list 1 2 3 4))) (newline)
(define (aappend seq1 seq2)
(accumulate cons seq2 seq1))
(display (aappend (list 1 2 3) (list 4 5 6))) (newline)
(define (alength sequence)
(accumulate (lambda (x y) (+ y 1)) 0 sequence))
(display (alength (list 1 2 3) )) (newline)