4

私は 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")]、ジョブではなくタプルにアクセスする方法がわかりませxjob == x = x:(withJob xs job)

4

2 に答える 2