又一段很有启发的haskell filter代码
--从列表 xs中过滤出满足谓词p的元素,注意foldr的使用
myFilter p xs = foldr step [] xs
where step x ys p x = x:ys
otherwise = ys
使用:
--过滤出1到10的list中大于5的元素
myFilter (>5) [1..10]
本文介绍了一种使用Haskell语言实现的自定义过滤函数myFilter。该函数通过foldr函数来构造,能够从列表中筛选出符合特定条件的元素。例如,可以使用此函数从1到10的数字列表中过滤出所有大于5的数字。
--从列表 xs中过滤出满足谓词p的元素,注意foldr的使用
myFilter p xs = foldr step [] xs
where step x ys p x = x:ys
otherwise = ys
使用:
--过滤出1到10的list中大于5的元素
myFilter (>5) [1..10]
3152

被折叠的 条评论
为什么被折叠?