【发布时间】:2018-07-08 18:51:22
【问题描述】:
假设我有一个三元组列表,例如:
[(1,2,3),(4,5,6),(7,8,9)]
如果我想找到第一个元素为1 的每个项目,那么通过这些filter 的方法是什么。 filter ((==1).fst) 不能用作元组的长度不等于 2。我有一些想法,但我似乎无法将它们发展为可行的代码,所以我想看看是否有人有更好的解决方案可以建议更了解这种语言。
【问题讨论】:
-
能不能把你需要的输出放出来
-
如果您的元组代表某种非抽象数据,那么定义您自己的数据类型可能是值得的:
data MyType = MyType {foo :: Int, bar :: Int, baz :: Int},因此您可以使用(==1) . foo,而不是使用(==1) . fst.这也使您的类型注释更容易理解。 -
@NigHamza 好吧,输出只是
[(1,2,3)],但这并不代表我的具体问题,我只是让问题更笼统,因此人们将其用作资源会发现它更容易读书。还要感谢@AJFarmar 的帮助!在我自己的代码中,我这样做了,但我不想把这个问题弄得太多。
标签: haskell