我正在尝试练习Haskell返回值和数据类型。我正在尝试将以下信息传递给程序:
worm = 1:2:3:worm
eel = [1,2,3,1,2,3,1,2,3]
snake = 3:2:1:snake
whale = [1..100]
我想创建一个具有开关功能的功能,以获取数据并将其与其定义相匹配。例如,在Python中:
def compare(str): #for one case and using string to clarify
if str == "1:2:3:worm":
return "worm"
我知道数据类型是列表,但会引起很多混乱。我的代码给我一个Could not deduce (Num Char) Arising from use of worm
我的代码:
which :: [a] -> String
which x | x == [1,2,3,1,2,3,1,2,3] = "worm" | x == 3:2:1:snake = "snake" | otherwise = "F"
我还缺少另一种方法吗?为什么我的函数给我这个错误?
答案 0 :(得分:3)
两个问题: