一种函数式编程语言,具有类似于Haskell的翻转但未柯里化的高阶函数

A functional programming language with a higher-order function similar to Haskell's flip but uncurried

有没有函数式编程语言的函数不是自动柯里化的,它有一个内置或库的高阶函数,其函数形式为 (AxB)->C 和 returns 一个(BxA)->C 形式的等效函数?这类似于Haskell的翻转功能。

您不需要柯里化来实现 flip。这是 Scala 中的一个实现:

def flip[A,B,C](f: (A, B) => C): (B, A) => C = (b: B, a: A) => f(a, b)

是否"built in"是另一个问题。在函数式编程中,这并不重要。如果没有柯里化,它也没有那么有用,因为通常你想使用 flip 来使合成工作。

在第 26 页的 1.4 中的 "Homotopy Type Theory" 中,柯里化版本的函数称为 "swap":

swap: Π(A:U)Π(B:U)Π(C:U) (A -> B -> C) -> (B -> A -> C)

swap(A, B, C, g)(b, a) := λb.λa.g(a)(b)

我不知道你为什么要为非柯里化版本取一个单独的名称,反正有什么区别...