我想做一个函数worp,返回2个整数列表。如何在Haskell中获得8-x随机值?
其中第一个整数列表是8减去输入列表长度的结果,掷骰子。
而第二个列表是输入列表。
这是我的代码:
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
即时得到这个错误:
System.IO> :load "X:\\haskell\\dobbel.hs"
ERROR file:.\dobbel.hs:17 - Instance of Num [IO Int] required for definitio of werpDobbelstenen
该代码会导致您引用的错误。请修改您的问题以包含完整且准确的错误消息。 – leftaroundabout
旁注:你可以使'werpDobbelstenen'尾递归:) – niceman
顺便问一下,'worp'如何编译? '[werpDobbelstenen(8长d),d]'不是一个同类名单! – niceman