此问题在此处已有答案:
how to return inputted value when no value is found in list comprehension Haskell(4个答案)
上个月关闭。
lookUp :: Char -> [(Char, Char)] -> Char
lookUp x xs = [if x `elem` xs then tail(xs) else head(xs) | x <- xs]
有一个类型错误,但我不知道为什么。我试图找到该对的第一个组成部分,并返回第二个组成部分,或返回x,如果输入不是一个对的一部分。
1条答案
按热度按时间ruarlubt1#
x
是一个Char
,而xs
是一个(Char, Char)
元组的列表。elem
函数具有以下类型,所以是的,你会得到一个类型错误。这个函数返回
Maybe Char
更有意义,因为你要搜索的键可能不存在于列表中。我们知道这个键不会存在于空列表中。否则我们可以递归地遍历列表,测试每个元组。