2006-11-05から1日間の記事一覧

再帰的プロセスと反復的プロセス

再帰的手続きには、再帰的プロセスと反復的プロセスのふたつの種類がある(そうだ)。 階乗計算の例で言うと、 再帰的プロセス -- 階乗(再帰) myfact_r n = if n == 1 then 1 else n * myfact_r (n-1)これは遅延演算を行っている。再帰の最後になってみないと…

フィボナッチ数計算(続 再帰的・反復的)

再帰的プロセスは、計算の木構造をめいっぱい展開することになる。 だから再帰的プロセスより反復的プロセスのほうが低コスト。 以下、反復的プロセスが、再帰的プロセスよりも低コストになる典型例 再帰版フィボナッチ数計算 -- フィボナッチ数(高コスト) m…

listとwhere letとwhere

listとwhere letとwhereの使い分けがいまだによくわからない。

買いました

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門作者: 青木峰郎,山下伸夫出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/06/01メディア: 単行本購入: 25人 クリック: 314回この商品を含むブログ (320件) を見る熟読する…

ニュートン法による平方根・立方根

平方根 -- 平均値 myaverage x y = (x + y) / 2 -- 平方根 mysqrt x = let { good_enough guess y = ( abs((guess*guess - y) / y) < 1e-10 ) ; val_improve guess y = myaverage guess (y/guess) ; sqrt_iter guess y = if (good_enough guess y) then gues…