我尝试编写一个Haskell函数,其中元素将与列表进行比较。 似乎很容易,但它无法正常工作。
zeich :: Char -> Bool
zeich x = elem x ['a','v','b']
另外我该怎么做数据类型?这样你也可以输入数字?
答案 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