to2yの日記

 | 

2006-07-09「ふつける」勉強会5章レジュメ

たらいまわし関数(竹内郁夫関数?)

   print (tarai 20 10 5)
-> print (if 20 <= 10 then 10 else (tarai (tarai (20-1) 10 5) (tarai (10-1) 5 20) (tarai (5-1) 20 10)
-> print (if False then 10 else (tarai (tarai (20-1) 10 5) (tarai (10-1) 5 20) (tarai (5-1) 20 10)
-> print (tarai (tarai (20-1) 10 5) (tarai (10-1) 5 20) (tarai (5-1) 20 10)
-> print (if (tarai (20-1) 10 5) <= (tarai (10-1) 5 20) then (tarai (10-1) 5 20) 
else tarai ( tarai ( (tarai (20-1) 10 5)-1) (..) (..) ) (tarai (..) (..) (..)) (tarai (..) (..) (..))

とここまで書いて

haskellの計算時間が圧倒的に早いのは、グラフ簡約だからではないかと考察

reductionの様子が観察できるモードがあれば楽しいのに

 |