私は Haskell を独学で学んでおり、これまでのところ最も啓発的な経験でしたが、C 言語ファミリーで簡単に実行できるいくつかのことはまだ謎のままです。だから、ここに私の非常に基本的な問題があります。特定のフィールドが特定の値に等しいタプルを抽出する関数が必要です。これまでのところ、私はこのコードを持っています
withJob :: [(String, String, String)] -> String -> [String]
withJob [] _ = []
withJob ((_,_,x):xs) job
| job == x = x:(withJob xs job)
| otherwise = (withJob xs job)
users :: [(String, String, String)]
users = [("Jack", "22", "Programmer"), ("Mary", "21", "Designer"), ("John", "24", "Designer")]
このように呼び出されるusers 'withJob' "Programmer"
と出力されます["Programmer"]
が、出力したいのですが[("Jack", "22", "Programmer")]
、ジョブではなくタプルにアクセスする方法がわかりませx
んjob == x = x:(withJob xs job)