我是一個初學者是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))]
@Willem Van Onsem感謝您的幫助,我現在開始更好地理解這個問題。但是,當我嘗試使用您建議的代碼時,我仍然不斷收到錯誤:「函數giveRaise中的非窮舉模式」。由於我是初學者,我不知道這意味着什麼。我更新的代碼到目前爲止是:giveRaise ::字符 - >內部 - > [(CHAR,字符串,整數)〕 - > [(CHAR,字符串,整數)] giveRaise PA N((PB,Z,M):尾) | pa == pb =(pb,z,m + n):尾部 |否則=(PB,Z,M):giveRaise PAñ尾 –
那麼問題是你做了什麼時,人不能在列表中找到? –
@WillemVanOnsem在給出的元組列表中,我們正在改變的元組將永遠在那裏。這些幫助有用? –