我是哈斯克爾的新手,我有一個問題(又名作業)。字符和字符串
所以,我有一個元組的列表 - 一個字符串和一個整數
xxs :: [([Char], Integer)]
我需要知道有多少XXS字符串與給定字符開頭。 讓我舉例說明:
foo 'A' [("Abc",12),("Axx",34),("Zab",56)]
Output: 2
foo 'B' [("Abc",12),("Bxx",34),("Zab",56)]
Output: 1
我最好的嘗試至今:
foo c xxs = length (foldl (\acc (x:xs) -> if x == c then c else x) [] xxs)
但是,當然,有一些lambda表達式裏面非常錯誤的。
有什麼建議嗎? 謝謝。
你有正確的預感。查看傳入你的lambda的第二個參數;您定義模式的方式,Haskell需要一個列表。如果'xxs'是一個列表列表,那就沒問題,但它只是一個元組列表。嘗試使用像'(x,y)'這樣的模式,然後查看讓你感覺到的位置。希望這可以幫助! – sczizzo 2011-12-29 04:44:49
@sczizzo謝謝。它真的幫助我。 – Dussel 2011-12-29 16:24:05