将列表与haskell进行比较

时间:2015-10-23 14:44:24

标签: haskell

我尝试编写一个Haskell函数,其中元素将与列表进行比较。 似乎很容易,但它无法正常工作。

zeich :: Char -> Bool

zeich x =   elem x ['a','v','b']

另外我该怎么做数据类型?这样你也可以输入数字?

1 个答案:

答案 0 :(得分:0)

您的zeich功能很好,快速ghci会话提供:

λ: let zeich :: Char -> Bool; zeich x = elem x ['a', 'v', 'b']
λ: zeich 'b'
True
λ: zeich 'c'
False

如果要在列表中存储个字符,则需要设计一个可以容纳任何一种类型值的新类型,例如

λ: data Element = Letter Char | Number Int deriving Eq

然后使用您可以定义的zeich2号码接受Element类型的值:

λ: let zeich2 :: Element -> Bool; zeich2 x = elem x [Letter 'a', Number 3, Letter 'b']
λ: zeich2 (Letter 'a')
True
λ: zeich2 (Number 3)
True
λ: zeich2 (Number 4)
False