为什么在haskell中编写函数时需要使用括号?

时间:2012-05-01 09:50:46

标签: haskell function-composition

假设我需要定义以下函数:

Identity = chr.ord

但上述行不起作用,正确的方法是:

身份=(chr.ord)

Haskell通常是一种极简主义的语言,所以使用这些额外的括号对我来说似乎并不自然。

是否有人知道需要引入括号。我不记得我们在haskell中使用点运算符的位置(除了小数点之外)。

在Nate / Daniel的评论之后进行编辑

你们都是对的。我的实际方法是:

nextLetter a 
         | a /= 'z' = chr.ord a
         | a == 'z' = 'a'

现在我明白了,在这种情况下,它会评估ord a然后尝试评估chr.97,因此错误!

感谢。

1 个答案:

答案 0 :(得分:4)

你错了。我写的时候

import Data.Char
identity = chr.ord
test.hs

并将其加载到ghci中,没有任何问题。