我有以下功能:
get :: Chars -> IO Chars
get cs = do
char <- getChar
let (dats, idx) = (curData cs, curIndex cs)
let (x,y:xs) = splitAt idx dats
let replacement = x ++ (ord char) : xs
return $ Chars replacement idx
Run Code Online (Sandbox Code Playgroud)
而且我想从中得到一个Chars价值,而不是 IO行动.我不知道怎么做,或者甚至可能.
Chars基本上只是一个[Int]名为curData且Int名为curIndex的容器.细节并不重要,我只是想知道这个函数是否有办法返回一个Chars而不是一个IO Chars.
如果没有,我如何将此作为参数传递给一个带有Chars?的函数?我是Haskell IO的新手,但我不认为我希望所有Chars以参数为参数的函数都必须IO Chars作为参数,然后提取并重新打包它们.这似乎没必要.
谢谢!
我正在学习在Haskell中使用输入和输出.我正在尝试生成一个随机数并将其输出到另一个文件.问题是随机数似乎返回"IO int",我无法使用"show"将其转换为String.有人能给我一个指针吗?