質問

私はチュートリアルでこの質問を与えてきた、と私は本当にそれについて移動する方法がわからない。

  

必須gおよびhはその
を確保するために、PとFの観点から定義することがどのように   filter p . map f = map g . filter h
  常に保持している?

右方向のどのポインタが非常に高く評価されるだろう。

役に立ちましたか?

解決

これは、そのf :: a -> bp :: b -> Boolをクリアしています。私たちはfgに関するその他の仮定を作ることができないので、1を定義する必要があります。

h = p . f
g = f

h :: a -> Boolg :: a -> bます。

他のヒント

のタイプについて考えてみます。

f :: a -> b
g :: a -> b
p :: b -> Bool
h :: a -> Bool

これを見るために別の方法:

map g (filter h A)セットです{g(a) : with h(a) is true and a is elt from A}

filter p (map f A)セットです{f(a) : with p(f(a) is true and a is elt from A}

これらのセットは同じであるためには、我々はf = gh(a) = p(f(a))を選択する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top