haskell - 如何从haskell中的不同数据类型列表中检索数据
问题描述
我们如何从两个不同数据类型的列表中检索特定数据?该程序仅将这些巧克力和糖果识别为 1 个参数,而不是两个参数。还有其他更好的方法来检索它吗?
data Store = Store Cookie Sweets [(Chocolate, Candy)]
-- get Candy Chocolate
getChocolate :: Store -> [(Chocolate, Candy)]
getChocolate (Store _ _ ch) = ch
-- get Candy Chocolate
getCandy :: Store -> [(Chocolate, Candy)]
getCandy (Store _ _ ca) = ca
解决方案
我猜你所追求的是函数名称所指示的语义,因为我认为你的签名不是你想要的。您必须记住完成数据的解构:
data Store = Cookie Sweets [(Chocolate, Candy)]
-- get Candy Chocolate
getChocolate :: Store -> [Chocolate]
getChocolate (Cookie _ xs) = map fst xs
-- get Candy Chocolate
getCandy :: Store -> [Candy]
getCandy (Cookie _ xs) = map snd xs
推荐阅读
- go - 在 GoLang 中将 int64 的 Slice 转换为字节数组,反之亦然
- android - 解决重新启动时自动触发警报的方法
- html - 使用 html 和 javascript 将结果四舍五入到小数点后 2 位
- java - Java中的Excel到PDF转换
- php - Wordpress - 网站和网站/wp-admin 重定向到/的索引
- cdn - 用于 Javascript 的免费 CDN 托管,可在 vpn 中的站点中使用
- android - 错误:找不到符号类 DataBindingComponent,构建正常但运行失败
- django - 如何从消费者类外部发送 channel_session 数据
- java - 如何使用动态编程查找 Boggle 板上的所有单词?
- reactjs - 绕过/覆盖 React ag-Grid 的分页