2つの整数のリストを返す関数worpを作ろうとしています。Haskellで8-xランダム値を取得するにはどうすればよいですか?
整数の最初のリストは、入力リストの長さから8を差し引いた結果です。ダイスはスローします。
2番目のリストは入力リストです。
これは私のコードです:このエラーを取得
import System.Random
worp :: [Int] -> [[IO Int]]
worp d = [werpDobbelstenen (8-length d),d]
werpDobbelstenen :: Int -> [IO Int]
werpDobbelstenen 0 = []
werpDobbelstenen x = randomRIO (1,6):werpDobbelstenen x-1
イム:あなたを定義し、今
import Control.Monad -- replicateM
import System.Random -- randomRIO
werpDobbelstenen :: Int -> IO [Int]
werpDobbelstenen n = replicateM n (randomRIO (1,6))
:
System.IO> :load "X:\\haskell\\dobbel.hs"
ERROR file:.\dobbel.hs:17 - Instance of Num [IO Int] required for definitio of werpDobbelstenen
このコードは、引用しているものとは異なるエラーを引き起こします。完全で正確なエラーメッセージを含めるように質問を編集してください。 – leftaroundabout
sidenote:あなたは 'werpDobbelstenen' tailを再帰的に作ることができます:) – niceman
ところで、' worp'はどのようにコンパイルされますか? '[werpDobbelstenen(8-length d)、d]'は同種のリストではありません!! – niceman