Haskell新手在这里。我正在玩这个表达:
"The sum of 3 and 4 is " ++ (show (3 + 4))
评价很好。这也很好:
"The sum of 3 and 4 is " ++ (show $ 3 + 4)
但我在输入$'上得到了一个解析错误。当我用$
替换最后一对括号时:
"The sum of 3 and 4 is " ++ $ show $ 3 + 4
我不确定为什么。我跟随LearnYouAHaskell series说:
' $相当于写一个开头的括号和 然后在表达式的最右侧写一个结束语。'
我错过了什么?
答案 0 :(得分:3)
部分应用的中缀运算符需要括在括号中。所以:
"The sum of 3 and 4 is " ++ $ show $ 3 + 4
失败了,但是......
("The sum of 3 and 4 is " ++) $ show $ 3 + 4
工作得很好。请注意,您还可以使用(.)
函数撰写函数,如下所示:
("The sum of 3 and 4 is " ++) . show $ 3 + 4
......但是后来才开始学习你的哈克尔。
另外,正如@Shanthakumar发布的那样,可能需要这样做:
(++) "The sum of 3 and 4 is " $ show $ 3 + 4