この関数のタイプはですT -> (T -> U) -> U
。Haskellでは、のようなものになると思い($ . flip)
ます。
または、オブジェクト指向の観点から(これは私が見ている方法です):
type T {
U myFunction(f: T -> U) {
return f(this);
}
}
私はメモでそれを「into」と呼んでおり->
、演算子として単一の矢印()を使用しています。これは関数に似ていmap
ますが、スカラーの場合:
a.into f = f(a)
[a, b, c].map f = [f(a), f(b), f(c)]
実用的なアプリケーションの例:
42 -> Math.sqrt
foo.bar.into(doSomething).baz.into(doSomethingElse).xyzzy
(rather than doSomethingElse(doSomething(foo.bar).baz).xyzzy)