创建一个从a到b生成数字列表的函数

时间:2014-06-28 12:06:32

标签: haskell

我想编写一个函数,生成ab之间所有数字的列表,期望在另一个列表中给出的数字:

generate :: Int -> Int -> [Int] -> [Int]

实施例

  • 输入:generate 2 6 [10,3,5,8]
  • 输出:[2,4,6]

1 个答案:

答案 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]   

现在尝试了解这些部分以及这里发生了什么 - 也许在评论中提出一些问题。