这是我的问题:我有两个名单如下:[(Float, Integer)]
和[(String, Integer)]
。现在我需要定义一个函数,它需要这两个列表和两个值,并返回一个列表Strings
。两个浮点值对应于给定的范围(最小值和最大值)。我必须过滤第一个列表,使其只包含在最小和最大范围内的元素。然后,我需要使用已过滤的列表并将其取值为Integer
,并将它们与第二个列表中的Integer
值进行匹配,并返回匹配的所有String
值。哈斯克尔地图和过滤器
我已经定义了一个函数用作过滤条件,它需要(Float,Integer)
并检查Float
值以查看它是否在给定范围内。
而且我已经定义了一个函数,取一个(String,Integer)
元素并返回String
。
我只是有问题连接在一起的一切,或者我失去了一些东西!
啊我觉得我发现了一个我犯的错误...我的过滤条件采用一个单一的元素,即(浮动,整数),所以当我试图通过它的名单[(浮动,整数) ]我收到错误。这就是它的样子:check ::(Float,Integer) - > Float - > Float - > Bool check b min max = if((fst b)> = min &&(fst b)<= max) 那么真 其他错假 – gdrules 2012-02-13 12:34:23
嗯,虽然我不知道如何克服这个过滤条件不应该列表,它应该检查单个元素? – gdrules 2012-02-13 12:43:07
更改参数的顺序:check2 :: Float - > Float - >(Float,integer) - > Bool',然后用'filter(check2 mini maxi)'过滤。部分应用FTW。 – 2012-02-13 12:46:12