、「パワーがドットである」、彼は(.) . (.) . (.)
のタイプは'(。)の種類を手動で推論する方法。 (。)。 (。) '?スライド上のエドワードKmettの話<a href="https://youtu.be/cefnmjtAolY?t=496" rel="nofollow">Lenses, Folds, and Traversals</a>で
(a -> b) -> (c -> d -> e -> a) -> c -> d -> e -> b
であることを示している私は、GHCiの中にその型を示すことによって、それを見ることができます。しかし、なぜか知りたいのですが。 (.) . (.)
と(.) . (.) . (.)
から(.)
からのパラメータの定期的な変化のパターンがありますなぜ私が理解したいのですが、他の事は次のとおりです。
(.) :: (a -> b) -> (c -> a) -> c -> b
(.) . (.) :: (a -> b) -> (c -> d -> a) -> c -> d -> b
(.) . (.) . (.) :: (a -> b) -> (c -> d -> e -> a) -> c -> d -> e -> b
P.S.関数定義を(.) . (.)
に拡張して、自分自身で(.) . (.)
を解決しようとしました。私は(.)
の定義を適用した後だ:
\x y z t -> x ((y z) t)
だから私はタイプを推測さ:
x :: a -> b
y :: c -> d -> a
z :: c
t :: d
私は(.) . (.) . (.)
に失われてしまったが。これが手動型推論を行う正しい方法であるかどうかはわかりません。機能付き
あなたは私たちが名前を変更する機能組成物の「セマンティックエディタコンビネータ」ビューを、 '好むかもしれません(。)' 'result'へ。 [この記事](http://conal.net/blog/posts/semantic-editor-combinators)に与えられた直感はかなりいいです、そして私の意見では、それは非常に明確理由で(。) ''結果の組成を積み重ねますそれがするタイプ。 –
@DanielWagner、リンクいただきありがとうございます。私はすぐにそれを読むでしょう。実は私は、エドワードは話にそれをたくさん述べたように「セマンティックエディタコンビネータ」をGoogleにしていました。美しい答えを –