我想编写一个函数,生成a
和b
之间所有数字的列表,期望在另一个列表中给出的数字:
generate :: Int -> Int -> [Int] -> [Int]
generate 2 6 [10,3,5,8]
[2,4,6]
答案 0 :(得分:1)
即使这很可能是家庭作业,但如果我给你这样的答案,我认为你可以学到一些东西:
import Data.List (delete)
generate :: Int -> Int -> [Int] -> [Int]
generate a b = foldl (flip delete) [a..b]
以下是ghci中的示例:
Prelude Data.List> generate 2 6 [10,3,5,8]
[2,4,6]
现在尝试了解这些部分以及这里发生了什么 - 也许在评论中提出一些问题。