SICP。
日本語で記述された用語だけでなく英語表記も憶えるように心がける。述語=predicateなんて今まで意識してなかったし、condがconditionalの略だって憶えてる方が絶対いい。
10ページ
どの述語も真でなければ cond の値は定義しない、とある。全ての式には値があるんじゃないのか? cond は式じゃないのか。
試しにやってみる:
gosh> (cond ((> 0 1) 1)) #<undef>
なるほど未定義だ。
多分岐条件式 cond の後に単純条件式 if が出てきた。構文糖は一切使わないってわけでもないのか。そういえばJavaでもCommons CollectionsにPredicate記述用のインターフェースが用意されてて関数型ぽく書けるのを思い出した。あっちに比べれば括弧の方がよほど構文糖だけど。