- 関数型プログラミング言語Haskell Part26
89 :デフォルトの名無しさん[sage]:2014/08/26(火) 02:32:00.76 ID:taZpdeNs - import Data.List (find)
import Data.Char (digitToInt) findTo :: Int -> Maybe Int findTo n = find ((n==) . sum. map digitToInt . show) $ [1..(10^21)] findTo' :: Int -> Maybe Int findTo' n = find ((n==) . sum . map digitToInt . show) $ [1..(10^20)] ghci> findTo 27 Nothing ghci> findTo' 27 Just 999 find以外を使えばこういうことは起らないんですかね? さいきん勉強しはじめたので、まったく原因が分らないです。 ちなみに、すごいHaskellたのしく学ぼう の6章あたりの問題です。
|
- 関数型プログラミング言語Haskell Part26
91 :デフォルトの名無しさん[sage]:2014/08/26(火) 08:41:01.12 ID:taZpdeNs - >>90
まじですか。 じゃあ、自分のghci(あるいはマシン)がおかしいのかな。 [1..(10^21] の、21をもっと大きくするとどういう挙動をします?
|
- 関数型プログラミング言語Haskell Part26
94 :デフォルトの名無しさん[sage]:2014/08/26(火) 18:28:29.24 ID:taZpdeNs - >>92
なるほど、納得できました。 ありがとうございます。
|