我是哈斯克尔的新手,我有一个问题(又名作业)。字符和字符串
所以,我有一个元组的列表 - 一个字符串和一个整数
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