我有一个非常简单的问题.我想在使用绑定运算符的代码块之后使用where子句,但是我得到了编译错误.
这是一个简单的例子:
main =
putStrLn "where clause test:" >>
return [1..10] >>= \list ->
print list'
where list' = reverse list -- test1.hs:5:28: Not in scope: `list'
Run Code Online (Sandbox Code Playgroud)
我可以使用let子句作为列表'
main =
putStrLn "where clause test:" >>
return [1..10] >>= \list ->
let list' = reverse list -- works of course
in print list'
Run Code Online (Sandbox Code Playgroud)
但如果我能使用where子句,我真的很喜欢它...
我也尝试过做符号
main = do
putStrLn "where clause test:"
list <- return [1..10]
print list'
where list' = reverse list --test3.hs:5:30: Not in scope: `list'
Run Code Online (Sandbox Code Playgroud)
同样的问题.在这种情况下我可以使用where子句吗?