1

我们正在尝试学习 Haskell(大约是第 5 次!),但仍在努力解决一些基本问题。

那我怎么会写

main = print (map (* 2) [1..5])

但我不会写

myfunc x =
   map ( (+ x) [1..5])

main = print (myfunc 2)

任何指导将不胜感激——我们有普通的书,但它们并没有真正的帮助。

4

2 回答 2

11

你把括号弄错了。你要:

myfunc x = map (+x) [1..5]
于 2013-04-25T16:36:58.277 回答
9

希望消除任何引起这一点的误解:在 Haskell 中,函数应用程序是左关联的,比任何中缀运算符都具有更高的“优先级”,并且不需要任何括号。括号仅用于分组子表达式:(f x) y与 just 相同f x y,而f (g x)需要括号。

于 2013-04-25T16:42:36.667 回答