【发布时间】:2023-03-18 01:42:02
【问题描述】:
好吧,我遇到了一个问题,基本上我被告知要制作一个多重集或一个元组列表。 (Char,Int) 然后我必须编写一个函数来获取一个项目并将其插入到这个列表中,但是如果列表中已经有一个匹配的元组,它会增加 Int。 即我有一个列表 [(p,2),(w,3)] 并且我得到另一个 w 它应该给出 [(p,2),(w,4)] 你会怎么做,我试过了
listAdd :: Char->Int->ListOfT -> ListOfT
listAdd c i l
|length l == 0 =(c,i):l
|fst l == c = (c,i+1):l
但这会产生大量错误,我需要在该点删除列表元素并将其替换为 (c,i+1),那么如何从列表中删除以及如何获得 i+1?另外,您如何创建一个遍历列表中所有元素的循环? 而且我不能使用任何导入数据的东西 我知道这要求很多,但任何帮助都会非常感谢。 新
好的,可以修改这段代码,这样它就可以用来制作任何项目的元组,而不仅仅是字符。所以我可以加载它并用搅拌器制作一个元组列表,关闭它然后再次加载它并制作一个整数元组列表?
【问题讨论】:
-
"我有一个列表 [(p,2),(w,3)],我得到另一个 w 它应该给出 [(p,2),(w,4)]" 所以你的函数应该有签名
Char -> ListOfT -> ListOfT,对吧?
标签: list haskell functional-programming