我明白Haskell的過濾器是一個高階函數(意思是一個函數,它接受另一個函數作爲參數),通過列表檢查哪個元素滿足某個布爾條件。瞭解Haskell的過濾器
我不太明白它的定義:
filter:: (a->Bool)->[a]->[a]
filter p [] = []
filter p (x:y) | p x = x:filter p y
| otherwise = filter p y
我明白,如果我傳遞一個空列表的功能,它只是返回一個空列表,但我怎麼看最後兩行?
@Justice:我不知道重新格式化是否有效。也許OP真的被奇怪的佈局弄糊塗了? – kennytm 2010-04-02 18:10:00