私は初心者だがHaskellのだと私は下図のように特定の初期の人の給料に昇給を与えることができる機能を作るためにしようとしている:Haskellのリスト内の特定のタプルを更新するにはどうすればよいですか?
*Main> giveRaise 'A' 200 [('A',"Al",1000),('B',"Bob",1500)]
の答えを与えることになりますこの:これまで
[('A',"Al",1200),('B',"Bob",1500)]
私のコードは、このですが、私は私がnで初期「G」を高めるためにそれをしようとすると、エラーを取得しておく:
giveRaise :: Char -> Int -> [(Char, String, Int)] -> [(Char, String, Int)]
giveRaise g n [(g, z, m)]
= [(g, z, (m + n))]
@ウィレム・ヴァン・オンセムあなたの助けをありがとう、私は今問題をより良く理解し始めています。しかし、私があなたが示唆しているコードを試してみると、私はまだエラーを取得し続けています: "関数の徹底的なパターンgiveRaise"。私は初心者なので、これがまだ何を意味するのか分かりません。これまでの私の更新されたコードは以下の通りです:giveRaise :: Char - > Int - > [(Char、String、Int)] - > [(Char、String、Int)] giveRaise pa n((pb、z、m):tail ) | pa == pb =(pb、z、m + n):テール |そうでなければ=(pb、z、m):giveRaise pa n tail –
問題は、その人がリストに見つからないときに行うことです。 –
@WillemVanOnsem指定されたタプルのリストでは、変更しているタプルは常にそこにあります。それはまったく役に立ちますか? –