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