Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.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_Filter_Sublist - Fatal编程技术网

List 数据类型筛选器子列表的Haskell列表

List 数据类型筛选器子列表的Haskell列表,list,haskell,filter,sublist,List,Haskell,Filter,Sublist,我得到了一个person数据类型,其名称和权重如下所示 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 "Rub

我得到了一个person数据类型,其名称和权重如下所示

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时的eg输出

个人“彼得”35.0

人“乔”45.0

人物“Alex”55.0

总重量:135.0

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

最大重量为100.0时的eg输出

设置1

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

总重量:80.0

设置2

人物“Alex”55.0

总重量:55.0

设置3
...... 因此

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

@jberryman嗯,不完全是我自己在学习Haskell。我完全靠自己为我的作业做了一个python背包解决方案,并试图用Haskell做同样的事情来学习它。我只是一个初学者。@leftaroundabout我看到了其他的例子,比如使用filter选项,但不知道如何使用它们,这就是为什么我提出这样一个问题的原因