此功能的类型为T -> (T -> U) -> U
。我相信在Haskell中,它会像($ . flip)
。
或者,从面向对象的角度来看(这是我一直在看的方式):
type T {
U myFunction(f: T -> U) {
return f(this);
}
}
我在笔记中称它为“进入”,并使用单箭头(->
)作为运算符。它类似于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)
答案 0 :(得分:0)
看起来F#有这个功能。该函数似乎没有命名,但运算符称为管道运算符。 http://msdn.microsoft.com/en-us/library/dd233229.aspx
let result = 100 |> function1 |> function2
在Haskell中,它是flip id
。一个名为data-aviary的特定包装将其定义为thrush
。 Is there an inverse of the Haskell $ operator?