EmacsでGauche使ってるんだけど、Scheme手習い読んでて今更気づいたこと。
僕が初めてSchemeに出会ってから早いもので1ヶ月が経ちました。
まだ色々と未熟です。
少しづつ少しづつ勉強して、理解を深めているので自然と時間がかかってしまう。。
まぁそんなこんなで今日はScheme手習いからlat?の問題。
lat?とは本の中ではリストの中が全てatomかどうかを判断する関数ですね。
さくっと書いてみます。
(define lat? (lamda (l) (cond ((null? l) #t) ((atom? (car l)) (lat? (cdr l))) (else #f))))
よく分からないから何度も同じとこを呼んでるうちに覚えてしまった。。。
それはいいとして、この中に登場するatom?なんだけど本に書いてある通り写したのになんでかエラーになるからおかしいなぁと思ったら、atom?さんがエラーだしてました。
Gaucheでatom?ってデフォルトでないの?というか、なんでそんなものが手習いに載ってるの?
まぁいいけど、、、
とりあえず、atom?を定義してやる。
(define atom? (lambda (x) (and (not (pair? x)) (not (null? x)))))
これがないと全力でエラッた。手習いひどいです('A`)
まぁこれで僕は夜も寝ることができますけどね♪
- 作者: Daniel P. Friedman,Matthias Felleisen,元吉文男,横山晶一
- 出版社/メーカー: オーム社
- 発売日: 2010/10/22
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 129回
- この商品を含むブログ (32件) を見る