初めてのHaskell

早速開始。早速挫折orz
持っている本は表示が文字列だけだった。数値計算結果の表示ってどうやるの?てなわけでHaskellでの定番の挫折、IOで転びました。まあ調べまくったらprintでよいということがわかりましたが。
とりあえずひたすら転びながら何とかできました。お題はなでしこと同じく"e.c"自然対数の底です。

main = print ( eLoop 1.0 1 )

eLoop :: Double -> Int -> Double
eLoop a n | a < 0.0000000001 = 0.0
          | otherwise        = ( eLoop ( a / fromIntegral n ) ( n + 1 ) ) + a

Haskellシンタックスハイライトがあるのね。ちょっと見直したぞはてな
で、苦労しまくって作った結果、実質2行で書けていることに驚愕を覚えた。流石数値演算言語。なんだかワクワクしてきたぞ!

収束条件がクソ適当なのはご愛嬌ということで(^^; そもそも元のプログラムの収束条件もちょっと反則でしょ。そういうわけでしょっぱなから厳密に頑張っても挫折を早めるだけなのでこのあたりであきらめました(^^;

とりあえず、これでhaskellプログラマに仲間入り!!(ぇ