将生成的随机数保存在变量Haskell中
我必须做一个叫猜数字的游戏作为家庭作业。 (玩家A想到某个数字A B正在猜测A想到的是哪个数字) 我需要实现它的方式,我会给程序一个时间间隔,在这个时间间隔内,玩家A会想到一些数字,然后B会通过询问A的数字是否高于60来猜测,然后A说例如是,所以B会猜测刚好高于60的数字,以此类推。。。 我只需要实现函数猜测数字,但我必须使用函数main和randNumber 我在将生成的数字保存到某个变量时遇到问题,以便以后使用。 这是带有错误消息的源代码将生成的随机数保存在变量Haskell中,haskell,random,numbers,Haskell,Random,Numbers,我必须做一个叫猜数字的游戏作为家庭作业。 (玩家A想到某个数字A B正在猜测A想到的是哪个数字) 我需要实现它的方式,我会给程序一个时间间隔,在这个时间间隔内,玩家A会想到一些数字,然后B会通过询问A的数字是否高于60来猜测,然后A说例如是,所以B会猜测刚好高于60的数字,以此类推。。。 我只需要实现函数猜测数字,但我必须使用函数main和randNumber 我在将生成的数字保存到某个变量时遇到问题,以便以后使用。 这是带有错误消息的源代码 import Random main a b =
import Random
main a b = getStdGen >>= (\gen -> guessTheNumber gen a b)
randNumber :: StdGen -> Int -> Int -> Int
randNumber gen a b = fst (randomR (a, b) gen)
guessTheNumber gen a b = do
a <- randNumber gen a b
putStr("Player A guessed the number: " ++ a)
-- ERROR "1.hs":8 - Type error in generator
-- *** Term : randNumber gen a b
-- *** Type : Int
-- *** Does not match : a b
随机导入
主a b=getStdGen>>=(\gen->猜测编号gen a b)
randNumber::StdGen->Int->Int->Int
随机数gen a b=fst(随机数(a,b)gen)
猜测编号gen a b=do
randNumber
函数是纯函数。因此,您可以使用let
保存返回值
此外,在打印之前必须将数字转换为字符串:使用show
。不要使用括号:
guessTheNumber gen a b = do
let number = randNumber gen a b
putStr $ "Player A guessed the number: " ++ show number
randNumber
函数是纯函数。因此,您可以使用let
保存返回值
此外,在打印之前必须将数字转换为字符串:使用show
。不要使用括号:
guessTheNumber gen a b = do
let number = randNumber gen a b
putStr $ "Player A guessed the number: " ++ show number