当我写这样的代码时:
Prelude> let f = (+1) . (*k)
Prelude| where k = 2
Prelude|
我有这样的错误:
<interactive>:46:5: parse error on input 'where'
答案 0 :(得分:3)
那是因为你试图在提示符下定义多行函数。您可以查看此链接以了解如何执行此操作:
How do I use multiple where clauses in GHCi?
但请注意,这可能不适用于所有版本。我有GHC版本7.4.2并面临同样的问题。
您可以将+m
标志用于多行函数定义,如下所示:
Prelude> :set +m
Prelude> let f = (+1) . (*k)
Prelude| where k = 2
Prelude|
这适用于我的系统。
否则,您可以将函数拆分为2:
let k = 2
let f = (+1) . (*k)