Scheme 手習い 5 章
読みました、なエントリが投入された旨の連絡が着信。エントリは以下。
引数のどれかが考慮されない
エントリの_感想_にも
p91の注に出てくる話(andもorもcondの省略形として書く事は出来る)がちょっと発想の転換な気がして面白かった。
という記述がありますが、これ確かに興味深い。
ってか、91p にある以下の記述
(and ...) は最初の引数が値 #f なら止まりますし、(or ...) は最初の引数が値 #t なら止まりますから
というソレは例えば
(and #f (let ((x (+ 1 2 3))) x))
みたいな式があったら let なナニは評価されない、ということなのかな。そーゆー意味では cond 式についても全ての引数が評価される保証はないのか。
でも、_定義 (define) することはできません_が_省略形として書くことはできます_というのはどーゆー意味なのだろうな。
あ、define しちゃうと引数な式を評価するのか。引数にグローバルな変数に副作用をおよぼすような式が書いてあったら云々、ってことになるのでしょうか。
そーゆー意味では
(and α β) = (cond (α β) (else #f)) (or α β) = (cond (α #f) (else β))
というソレはマクロで書けば OK ですよ、って意味なのかな。
言ってることがビンゴなのかダウトなのかは不明ですがなかなかに深い。