【问题标题】:Haskell List of Data Type Filter Sub ListHaskell 数据类型过滤子列表列表
【发布时间】:2012-03-23 00:21:58
【问题描述】:

我有一个人数据类型,它有一个名字,他们的体重如下所示。

data Person = Person
    {pName :: String,
     pWeight :: Double} deriving (Show)

persons :: [Person]
persons = [Person "Peter" 35.0,
            Person "Joe" 45.0,
            Person "Alex" 55.0,
            Person "Ruby" 60.0,
            Person "John" 65.0,
            Person "Ann" 35.0]

Q1如果我想过滤并从给定人员列表中获取第一个子集,即他们的最大权重总和小于给定值怎么办?

例如,如果最大权重为 150.0,则输出

人“彼得”35.0

人“乔”45.0

人“亚历克斯”55.0

总重量:135.0

Q2如果我想得到设定的最大权重的所有子集

例如,如果最大权重为 100.0,则输出

设置 1

人物“彼得”35.0 人“乔”45.0

总重量:80.0

第二组

人“亚历克斯”55.0

总重量:55.0

第 3 组 ......等等

【问题讨论】:

  • @jberryman 不完全是我自己学习 Haskell。我完全自己为我的作业做了一个 python 背包解决方案,并尝试用 Haskell 做同样的事情来学习它。我只是这里的初学者。
  • @leftaroundabout 好吧,我看到了其他示例,例如使用过滤器选项,但不知道如何使用它们,这就是我提出这样一个问题的原因

标签: list haskell filter sublist


【解决方案1】:

第一个可以使用过滤器完成。第二个似乎是一个背包问题。在这种情况下,您可以搜索策略来解决它。如果您在编写代码后遇到任何问题,请在此处重新发布,社区将很乐意提供帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-27
    • 2023-04-08
    • 1970-01-01
    • 2012-04-06
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多