tuplesList = [('a','m'), ('b', 'n'), ('c', 'o'), etc]
如何通过先观察第一要素,并返回第二,如果发现搜索这个列表中的数值,但如果没有找到,那么看一下第二个元素,返回的第一个元素如果找到。例如搜索'a'会返回'm'并搜索'n'会返回'b'?双向搜索元组的列表
我尝试这样做:
lookup :: Char -> [(Char,Char)] -> Char
lookup x zs = (head [b | (a,b) <- zs, (a==x)])
lookup x zs = (head [a | (a,b) <- zs, (b==x)])
,但我不知道怎么说,如果二号线没有找到匹配,则执行3号线。 任何帮助表示赞赏。
'Alternative'从'Control.Applicative'将方便在这里:'查找” X ZS =查找X ZS <|>查找X(FMAP交换ZS )' –
完美。有用。 – user2846043