Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List Haskell递增元组的最后一个元素_List_Haskell_Tuples - Fatal编程技术网

List Haskell递增元组的最后一个元素

List Haskell递增元组的最后一个元素,list,haskell,tuples,List,Haskell,Tuples,嗨,你能帮我增加元组的最后一个元素吗。 目前我有这个元组列表 items :: [Grocery] items = [("Water", "Drink Section", 1), ("Squash", "Drink Section", 1), ("Apple", "Fruit Section", 1), ("Plates", "Disposable Section", 1), ("Plates", "Ceramic Sect

嗨,你能帮我增加元组的最后一个元素吗。 目前我有这个元组列表

items :: [Grocery]
items = [("Water", "Drink Section", 1),
         ("Squash", "Drink Section", 1),
         ("Apple", "Fruit Section", 1),
         ("Plates", "Disposable Section", 1),
         ("Plates", "Ceramic Section", 1)]
我想做的是在每次购买物品时将其增加1,并输出数据库。现在我有这个

sales:: [database] -> String -> String-> [database]
sales db itemName sectionName = []
sales ((item, section, qty): xs) itemName sectionName 
     | item == itemName && section== sectionName = [(item, section, qty + 1)]
     | otherwise = []
我还在增加它,我被卡住了。请帮帮我,我还是这门语言的新手。谢谢大家!

编辑

现在一切正常,但如何输出列表的其余部分?我试过
recordSale xs TrackArtister trackTitle
,但当我测试它时,我增加的旧记录也会被打印出来,而不是被修改?假设我增加了苹果,它将打印的是

[("Apple", "Fruit Section", 2),("Water", "Drink Section", 1),("Squash", "Drink Section", 1), ("Apple", "Fruit Section", 1)]

它复制记录,而不是只添加1个,这还不错,但让我们假设您正在尝试增加“Squash”,即示例项目列表中的第二个元素。
sales
做什么?它检查列表中的第一项“水”是否等于“壁球”。因为水不等于挤压,所以它会撞击
,否则
案例并返回
[]

因此,在我们得到一个
[]
备份之前,所有这些似乎都是正确的-让我们以其他方式更改代码。显然,我们不想扔掉整个名单,那太愚蠢了。您应该重写它以保留刚才比较的项目,并将其连接到应用于列表其余部分的
sales
结果(
xs

在你得到
分支修复后,你会注意到在你增加的项目被扔掉后整个列表——我认为,一旦你完成这个问题,一个会立即弹出


另外,解雇将壁球放在饮料区的员工。

如果这是家庭作业,请用标签标记。提示:使用
地图
或列表理解谢谢先生!将otherwise分支修改为
| otherwise=sales xs itemName sectionName
,它成功了!非常感谢。