我们正在努力学习Haskell(大约第五次!)并且仍然在努力解决一些基本问题。
那我该怎么写
main = print (map (* 2) [1..5])
但我不能写
myfunc x =
map ( (+ x) [1..5])
main = print (myfunc 2)
任何指导都会受到赞赏---我们有通常的书,但他们并没有真正帮助。
答案 0 :(得分:11)
你的括号错了。你想要:
myfunc x = map (+x) [1..5]
答案 1 :(得分:9)
希望清除任何引起误解的错误:在Haskell中,函数应用程序是左关联,比任何中缀运算符更高“优先级”,并且不需要任何括号。括号仅用于对子表达式进行分组:(f x) y
与f x y
相同,而f (g x)
需要括号。