作者:晨曦--雨荷 | 来源:互联网 | 2022-12-02 16:45
我在Haskell中编写了一个函数来返回一个列表.我想得到函数的返回值并存储在另一个变量中以备将来使用.我写的代码如下
module Main
where
import System.IO
main =do
let list=doCal
doCal =do
hSetBuffering stdin LineBuffering
putStrLn "Give me a number (or 0 to stop):"
num <- getLine
let number = read num
if number==0
then
return []
else do
rest <-doCal
return (number:rest)
当我尝试运行它时,我收到了一个错误
Cal.hs:7:9: error:
The last statement in a 'do' block must be an expression
let list = doCal
|
7 | let list=doCal
| ^^^^^^^^^^^^^^
Failed, no modules loaded.
如何将函数的返回值存储到Haskell中的变量?
1> Paul Johnson..:
用同样的方法,你已经与做到了rest
在doCal
.
main = do
list <- doCal
但是你还需main
要做一些事情并返回一个值.所以你可以写
main = do
list <- doCal
print list
这将起作用,因为print list
返回()
,这是Haskell中的一个值(它只是其类型的唯一值).