小编flo*_*poe的帖子

具有映射函数的Haskell函数组合

我经历了理查德·伯德的"哈斯克尔功能的思考"一书,并且存在在那里他证明了滤波方法的属性我无法理解的部分.他证明的是:

filter p . map f = map f . filter (p . f)
Run Code Online (Sandbox Code Playgroud)

在本书的前面,他将过滤器定义为:

filter p = concat . map (test p)
test p x = if p x then [x] else []
Run Code Online (Sandbox Code Playgroud)

这就是他证明第一个等式的方法:

    filter p . map f
= {second definition of filter} -- He's referring to the definition I gave above
    concat . map (test p) . map f
= {functor property of map}
    concat . map (test p . f)
= {since test p . f …
Run Code Online (Sandbox Code Playgroud)

haskell equality proof function-composition map-function

4
推荐指数
1
解决办法
202
查看次数