gpt4 book ai didi

function - Haskell 映射和过滤器

转载 作者:行者123 更新时间:2023-12-02 21:57:21 25 4
gpt4 key购买 nike

这是我的问题:我有两个列表如下:[(Float, Integer)][(String, Integer)] 。现在我需要定义一个函数,它接受这两个列表和两个 Float值并返回 Strings 的列表。这两个浮点值对应于给定的范围(最小值和最大值)。我必须过滤第一个列表,使其仅包含最小和最大范围内的元素。然后,我需要使用过滤后的列表并获取它的 Integer值,将它们与 Integer 匹配第二个列表中的值并返回所有 String匹配的值。

我已经定义了一个用作过滤条件的函数,该函数采用 (Float,Integer)并检查 Float值来查看它是否在给定范围内。

我定义了一个函数来获取 (String,Integer)元素并返回 String .

我只是在将所有内容链接在一起时遇到问题,或者也许我错过了一些东西!

最佳答案

你需要(例如,有不同的方式)

integersFromRange :: Float -> Float -> [(Float,Integer)] -> [Integer]
stringsFromInteger :: Integer -> [(String,Integer)] -> [String]

integersFromRange 基本上是 map snd 。过滤条件,其中 condition 由两个 Float 构造而成(您已经拥有了)。 stringsFromInteger 可以实现为 map fst 。过滤条件。然后将这些功能与

result = concatMap (`stringsFromInteger` stringList) (integerFromRange mini maxi floatList)

使用一组Integer而不是列表会更有效,因为Set中的成员资格测试比列表中更快。

关于function - Haskell 映射和过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9260279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com