関数型プログラミング言語Haskell Part6
■ このスレッドは過去ログ倉庫に格納されています
0675デフォルトの名無しさん
2007/02/10(土) 23:10:33苦労しながらsin x のテイラー展開の収束性を見るプログラムを書いたw
引数は展開次数nとxなのだが、そのうちの展開次数nだけを[1..10]にマップしたい。
だがその方法が分からんので優しいお方おすえて。
カリーかとやらで第一引数だけをまず展開するんじゃないかと思ったが、うまくいかない。
どこを勘違いしているのかも含めてvipperにも分かるように3行で教えてくれw
module Main (main) where
-- Taylor expansion / Honer's method
sin'' 0 x y = y
sin'' n x y = sin'' (n - 1) x ( 1.0 - x * y / ( (2 * n + 1) * (2 * n) ) )
sin' n x = x * sin'' n (x * x) 1.0
converge_sin n = sin' n 1.0
main = print $ map converge_sin [1..10]
出力
[0.8333333333333334,0.8416666666666667,0.841468253968254,0.8414710097001764,0.84
1470984648068,0.8414709848086585,0.8414709848078937,0.8414709848078965,0.8414709
848078965,0.8414709848078965]
じゃわカリー/~
■ このスレッドは過去ログ倉庫に格納されています