所以我的目标是能够调用一个非一元函数,并让它返回一个随机值。getNums :: [Int] -- this only works when the type signature is "IO [Int]"getListFromIO n = do return $ generateList n gen但是,每个调用它的函数都必须使用IO</e
如果我们有以下两个函数,即加和减,那么将它们链接起来对输入进行一系列计算是很简单的:add n = state $ \x -> ((),x+n)subtract 3 --etc
--result is 9-- prints 7, then 4, then 9
在没有StateT或任何自定义数据类型的情况下,可以复制这种“组合计算和打印