2

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

身份 = chr.ord

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

身份 = (chr.ord)

Haskell 通常是一种极简主义的语言,因此使用额外的括号似乎并不自然(对我来说)。

有谁知道需要引入括号。我不记得我们在 haskell 中在哪里使用点运算符(除小数外)。

根据 Nate/Daniel 的评论进行编辑

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

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

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

谢谢。

4

1 回答 1

4

你错了。当我写

import Data.Char
identity = chr.ord

test.hs加载它ghci,没有任何问题。

于 2012-05-01T09:54:14.890 回答