本当は怖いHPC

HPC屋の趣味&実益ブログ

関数プログラミング入門・一人読書会 (2)

前回,読み始めたというエントリを書いて,その後音沙汰無い状態になってしまっていたのだが,実は本を紛失していて止まっていた.

関数プログラミング入門 ―Haskellで学ぶ原理と技法―

関数プログラミング入門 ―Haskellで学ぶ原理と技法―

発見したので再開する.今回は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は正格

【広告】