2009年6月29日月曜日

【フムフム本】8章 真偽値と条件判断


* 8章 真偽値と条件判断
** 8.1 述語と等価述語
- 特になし。
** 8.2 等価性
- 特になし。
*** 8.2.1 内容が同じ
- equal?はCommon Lispのequalpと同じかんじ。
*** 8.2.2 入れ物が同じ
- あ、Schemeにもシンボルという概念はあるんだ。
- eq?はCommon Lispのeqと同じかんじ。
- eqv?はeql的かな。
*** 8.2.3 数値として同じ
- 特になし。
*** 8.2.4 その他の等価性
- 特になし。
- SRFIまで含めると、Schemeも潤沢だ。
*** コラム 共有構造を持つリストの表記
- 特になし。
*** 8.2.5 等価述語をとる手続き
- 特になし。
*** 8.3 真偽値を扱う手続き
- 特になし。
*** 8.3.1 等価述語以外の述語
- 特になし。
*** 8.3.2 否定
- 特になし。
*** 8.3.3 述語を取る手続き
- 特になし。
- 練習問題
(define (my-every-pred . preds)
(lambda x
(fold (lambda (a b) (and a b)) #t
(map (lambda (pred) (apply pred x))
preds))))
(define (my-any-pred . preds)
(lambda x
(fold (lambda (a b) (or a b)) #f
(map (lambda (pred) (apply pred x))
preds))))
** 8.4 条件判断
- 特になし。
*** 8.4.1 ifとcond
- beginはprognと同じようなもの。
- おお。condで条件式の値を後続式で使えるのか。
- さらに判断式まで。SRFI恐るべし。
*** 8.4.2 case
- 特になし。
*** 8.4.3 andとor
- 特になし。
*** 8.4.4 whenとunless
- 特になし。
*** 8.4.5 and-let*
- お、and-let*も便利。
*** コラム すべて式である
- 特になし。

ついつい、もう一章やってしまった。

こつこつ。

0 件のコメント: