【发布时间】:2015-11-24 20:43:50
【问题描述】:
我有超市库存清单的代码:
type Barcode = Int
type Name = String
type Price = Int
data Inventory = Inventory Barcode Name Price deriving (Eq, Ord, Show)
marktInventar :: [(Int,String,Int)]
marktInventar = [ (321, "Salz", 35)
, (432, "Butter", 95)
, (531, "Milch", 85)
, (235, "Eier", 145)
, (246, "Schmalz", 245)
, (642, "Mehl", 110)
, (528, "Safran", 249)
, (395, "Wurst", 345)
, (294, "Kaese", 215)
, (178, "Tomate", 45)
, (378, "Banane", 75)
, (938, "Orange", 65)
, (491, "Kiwi", 95)
]
我只是给了名单,其余的都是我自己做的,我希望它是正确的。 现在我应该构建一个函数 findArticle,在其中输入条形码并获取产品的名称和价格。它应该是一个递归函数,在列表中搜索匹配的条形码。但是我该怎么做呢?
感谢您的帮助
【问题讨论】:
-
您需要自己写
findArticle,作为家庭作业,还是您需要解决的真正问题?如果是后者,您应该可以使用Data.List.lookup,前提是您可以预处理您的库存,使其具有[(Int, (String, Int)]类型;或者直接使用Data.List.find。 -
如果有多个产品带有给定的条形码,或者没有带有给定条形码的产品(例如,如果市场被抢劫并且没有产品剩下)会发生什么?跨度>