関数プログラミング入門・一人読書会 (2)
前回,読み始めたというエントリを書いて,その後音沙汰無い状態になってしまっていたのだが,実は本を紛失していて止まっていた.
- 作者: Richard Bird,山下伸夫
- 出版社/メーカー: オーム社
- 発売日: 2012/10/26
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 28回
- この商品を含むブログ (5件) を見る
発見したので再開する.今回は1.3.1,1.3.2.
1.3.1
multiply (0, infinity)
を簡約すると以下のようになる.
multiply (0, infinity) => if 0 == 0 then 0 else 0 x infinity => 0
同様に,multiply (infinity, 0)
を簡約すると
multiply (infinity, 0) => if infinity == 0 then 0 else 0 x infinity
ここで,==
は両辺の値を正規形まで簡約する必要があるので,無限ループとなり,答えは返ってこない.
1.3.2
h
が正格であるための条件は,h ⊥ = ⊥
であること.
h ⊥ => f ( g ⊥ ) => f ⊥ (∵ gは正格) => ⊥ (∵fは正格)
よってh
は正格