我寫了以下類型的函數:元組評價
match :: [(String,a)] -> Maybe (String, a, a)
我希望函數遍歷元組的列表,並確定是否有任何的元組中的第一個元素(一個字符串)是一樣的。如果是這樣,我想返回一個包含該字符串的元組,以及每個匹配元組中的第二個元素。如果沒有匹配的元組,則返回「Nothing」。如果有多個匹配項,則返回找到的第一個匹配項。
例如:
match [("x", 3), ("y", 4), ("z", "5"), ("x", 6)] = ("x", 3, 6)
match [("x", 3), ("y", 4), ("z", "5")] = Nothing
我在想:
match (x:xs) = if (fst x) = (fst xs) return (fst x, snd x, snd xs)
--if no matches, return Nothing
感謝您的幫助!
我認爲(「z」,「5」)是一種印刷錯誤,因爲沒有其他數字有引號。 –