Haskell函数应用程序替换括号

时间:2014-12-21 15:46:47

标签: haskell

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说:

  

' $相当于写一个开头的括号和   然后在表达式的最右侧写一个结束语。'

我错过了什么?

1 个答案:

答案 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