【发布时间】:2011-02-03 19:51:06
【问题描述】:
我知道 Haskell 的过滤器是一个高阶函数(意味着一个函数将另一个函数作为参数),它通过一个列表检查哪个元素满足某个布尔条件。
我不太明白它的定义:
filter:: (a->Bool)->[a]->[a]
filter p [] = []
filter p (x:y) | p x = x:filter p y
| otherwise = filter p y
我知道如果我将一个空列表传递给函数,它只会返回一个空列表,但我如何阅读最后两行?
【问题讨论】:
-
@Justice:我想知道重新格式化是否有效。也许OP真的被奇怪的布局弄糊涂了?