私は、次の種類の機能を書いている:タプル評価
match :: [(String,a)] -> Maybe (String, a, a)
私は関数はタプルのリストをトラバースし、の最初の要素(文字列)任意のタプルがあるかどうかを決定します同じです。もしそうなら、私はその文字列を含むタプルと、一致するタプルのそれぞれの2番目の要素を返したいと思います。一致するタプルがない場合は、 "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")は誤植であると仮定します。他の数字には引用符がありません。 –