有没有办法解决它,以便我也可以在外面使用它们? 提前致谢。 我有这样的事情:
if(x==1)
then
someList<-aFunction (1,2)
else
someList<-aFunction (3,4)
steps involving someList here
答案 0 :(得分:8)
在这种特殊情况下,
someList <- aFunction (if x == 1 then (1,2) else (3,4))
会解决它。请记住,if ... then ... else ...
是Haskell中的表达式。
答案 1 :(得分:4)
你在Haskell中误解了变量:一旦定义它们,它们永远不会改变它们的值,所以如果你希望在一个分支内做一个赋值,那就行不通了。但是,可能有以下帮助:
let x = if (cond) then .. else .. in f x
小心不要在if-then-else中阅读x
除非你知道你在做什么:-)另一个提示:如果你在这个结构中使用另一个let x = ..
,它将“阴影“外部x
,所以它实际上是一个不同的新变量。