2009-04-17
GHCiで複数行の関数を定義
Haskell | |
GHCiでパターンマッチのような複数行の関数を定義しようとすると後で定義した行のみが有効になってしまう。
Prelude> let fact 0 = 1 Prelude> let fact n = n * fact (n-1) Prelude> fact 10 *** Exception: stack overflow Prelude> :t fact fact :: (Num a) => a -> a
次のようにするとおk。
Prelude> :{ Prelude| let { fact 0 = 1 Prelude| ; fact n = n * fact (n-1) Prelude| } Prelude| :} Prelude> fact 10 3628800 Prelude> :show bindings fact :: (Num t) => t -> t = _ it :: Integer = 1
コメント
トラックバック - http://d.hatena.ne.jp/sirocco/20090417/1239994537
リンク元
- 12 http://k.hatena.ne.jp/keywordblog/Haskell
- 7 http://d.hatena.ne.jp/keyword/Haskell
- 2 http://d.hatena.ne.jp/diarylist?of=150&mode=rss&type=public
- 2 http://d.hatena.ne.jp/keywordmobile/Sex
- 2 http://reader.livedoor.com/reader/
- 1 http://d.hatena.ne.jp/keyword/モナド
- 1 http://www.google.co.jp/hws/search?hl=ja&q=regexcontext&client=fenrir&adsafe=off&safe=off&lr=lang_ja


