过滤/映射组合问题Haskell

Cia*_*ran 2 haskell composition

我在教程中得到了这个问题,我真的不知道如何去做.

为了确保
filter p . map f = map g . filter h
始终保持,必须如何用p和f定义g和h ?

任何指向正确方向的人都会非常感激.

Ste*_*202 9

很明显,f :: a -> bp :: b -> Bool.既然我们不能对任何其他假设fg,一个必须定义

h = p . f
g = f
Run Code Online (Sandbox Code Playgroud)

现在h :: a -> Boolg :: a -> b.