gpt4 book ai didi

haskell - 如何设置列表的范围?

转载 作者:行者123 更新时间:2023-12-01 11:12:34 24 4
gpt4 key购买 nike

我必须编写一个代码来返回输入列表中前两个参数给定范围内的所有数字。

我试图将列表的头部设置为最低输入。

inRange :: Int -> Int -> [Int] -> [Int]
inRange lo hi xs = (x == lo : xs == hi)

我希望得到这样的结果inRange 5 10 [1..15] == [5,6,7,8,9,10],但由于我无法编写代码,因此模块未加载。

最佳答案

我们可以 filter :: (a -> Bool) -> [a] -> [a] 列表,这样它只保留值 x为此 lo <= x && x <= hi持有:

inRange :: Ord a => a -> a -> [a] -> [a]
inRange lo hi = filter (<b>\x -> lo <= x && x <= hi</b>)

我们可以针对 lo > hi 的情况对其进行优化,从那以后,没有元素可以满足条件,因此我们可以返回一个空列表。

inRange :: Ord a => a -> a -> [a] -> [a]
inRange lo hi
| lo > hi = []
| otherwise = filter (<b>\x -> lo <= x && x <= hi</b>)

关于haskell - 如何设置列表的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58119851/

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