を取得し、私は次のコードになってしまっているmy previous questionから続く:コンパイル済みのHaskellプログラムを実行しています。 [OK]をエラー
module Main where
import Data.List
chain n | n == 0 = error "What are you on about?"
| n == 1 = [1]
| rem n 2 == 0 = n : chain (n `div` 2)
| otherwise = n : chain (3 * n + 1)
chainLength n = (n,length (chain n))
array = map chainLength [1..999]
lengths = map chainLength [1..1000000]
compareSnd (_, y1) (_, y2) = compare y1 y2
longestChain = maximumBy compareSnd lengths
GHCiのから、これはモジュールとして罰金ロードしますが、longestChainを実行すると、スタックオーバーフローで終わります。完全な書き換えではないこの問題に対する解決策は、スタックサイズを増やすことです。 だから私は使用してコンパイル: GHC --make chain.hs
私はエラーを取得する:
私はそれを正しくコンパイルするためにの主な機能を配置する必要がありますchain.hs:1:0: The function 'main' is not defined in the module 'main'
。
一度コンパイルしたら、出力を実行させる方法とコマンドを使用する方法はありますか? 私が想定しています
ghc chain.o +RTS -K128M
、私はそれが大きなスタックサイズとlongestChainを実行する必要があります。
ありがとうございます、あなたは命の恩人です。ハスケルの私のスキルは助けてくれてとても感謝しています。 –
"悪い"モナドになったら電話してください;-) –