トップページ > プログラム > 2014年08月26日 > taZpdeNs

書き込み順位&時間帯一覧

19 位/203 ID中時間01234567891011121314151617181920212223Total
書き込み数0010000010000000001000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
関数型プログラミング言語Haskell Part26

書き込みレス一覧

関数型プログラミング言語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
なるほど、納得できました。
ありがとうございます。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。