2

这个函数的类型是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)
4

1 回答 1

0

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

let result = 100 |> function1 |> function2

在 Haskell 中,它是flip id. 一个名为 data-aviary 的滑稽包将其定义为thrush. Haskell $ 运算符是否有逆运算?

于 2012-06-26T01:45:37.793 回答