2009/03/31

[The Little Schemer]lat?

The Little Schemer」P.15 ~

 

  • lat
    • a lat is is a list of atoms
    • null list is lat
    • Every lat is a list of atoms!

 

自前のlat?

(define lat?
  (lambda (ls)
    (cond ((null? ls) #t)
          ((atom? (car ls))
           (lat? (cdr ls)))
          (else #f))))

 

(lat? '(1 2 3))
;; => #t

 

(lat? '(a b c))
;; => #t

 

(lat? '())
;; => #t

 

(lat? '((1 2 3) 4 5))
;; => #f

 

回答

(define lat?
  (lambda (l)
    (cond ((null? l) #t)
          ((atom? (car l)) (lat? (cdr l)))
          (else #f))))

  • 違い
    • インデントが異なった
    • 引数名が異なった

 

 

  • (cond ...
    • asks questions
  • (lambda ...
    • creates a function
  • (define ...
    • gives it a name

 

 

書籍では以降、再帰の説明がS式及び行単位で続く・・・。

結構くどい。

省略。

0 件のコメント:

コメントを投稿