Gaucheメモ1

「プログラミングGauche」なかなか届かないので買って来た。ちょっと読んだのでメモ。

(6章 リスト)

;deep-copy-list
(define (deep-copy-list lst)
  (cond ((null? lst) '())
        ((null? (car lst)) (deep-copy-list (cdr lst)))
        (else (cons (car lst) (deep-copy-list (cdr lst))))))

;length
(define (length lst)
  (cond ((null? lst) 0)
        (else (+ 1 (length (cdr lst))))))

;filter
(define (filter f lst)
  (cond ((null? lst) '())
        ((f (car lst)) (cons (car lst) (filter f (cdr lst))))
        (else (filter f (cdr lst)))))

オモシロス。
#;とか。
#?=とか。
知らないことがいっぱいです。後ろの章は難しそうだ><