【发布时间】:2019-11-14 13:01:26
【问题描述】:
根据以下规则,我尝试解决以下问题:
- 没有递归的定义
- 没有理解列表
- 只允许使用 Prelude-Module。
现在我必须为 concat 和 filter 实现高阶。
我在这一点上:
concat' :: [[a]] -> [a]
concat' a = (concat a)
filter' :: (a -> Bool) -> [a] -> [a]
filter' p [] = []
filter' p (x:xs)
| p x = x : filter p xs
| otherwise = filter p xs
concat 函数正在工作(到目前为止没有什么特别的)-> 这是定义的递归吗?我的意思是我使用了标准前奏中预定义的 concat 但我自己没有定义它 - 还是我错了?
对于过滤器,我查找了标准前奏的定义的函数,但它要么不起作用,它包含递归的定义。
【问题讨论】:
标签: haskell higher-order-functions