函数f(a b)= b(a)是否有通用名?

时间:2012-06-25 15:08:20

标签: function terminology

此功能的类型为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)

1 个答案:

答案 0 :(得分:0)

看起来F#有这个功能。该函数似乎没有命名,但运算符称为管道运算符。 http://msdn.microsoft.com/en-us/library/dd233229.aspx

let result = 100 |> function1 |> function2

在Haskell中,它是flip id。一个名为data-aviary的特定包装将其定义为thrushIs there an inverse of the Haskell $ operator?