Haskell比较两个字符

时间:2014-03-04 17:04:26

标签: haskell haskell-platform

compLetters :: Char -> Char -> Char
compLetters a b = chr (min (ord a ord b))

我正在尝试与字符进行比较,以查看哪一个出现在字母表中。我尝试使用上面的代码执行此操作但出现错误。任何帮助表示感谢,谢谢。

2 个答案:

答案 0 :(得分:9)

由于Char实施Ord,您可以直接使用min

firstChar :: Char -> Char -> Char
firstChar a b = min a b

或更简单

firstChar = min

或者您可以在代码中使用min

您的代码失败的原因是语法。

min (ord a ord b)

解析为

min (((ord a) ord) b)

其中说ord需要3个参数而min需要1个参数,但这并不是类型检查。相反,你应该

min (ord a) (ord b)

答案 1 :(得分:0)

Char是Ord的一个实例,所以你可以使用(<)。

> 'a' < 'b'
  True