一种具有高阶函数的函数式编程语言,类似于Haskell的翻页,但未使用

时间:2018-06-25 08:39:58

标签: functional-programming programming-languages

是否有任何函数式编程语言,其功能不会自动进行处理,是否具有内置或库高级函数,该函数采用(AxB)-> C形式的函数并返回该形式的等效函数( BxA)-> C?这类似于Haskell的翻转功能。

2 个答案:

答案 0 :(得分:2)

您无需执行任何操作即可实现flip。这是Scala中的一个实现:

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

是否“内置”是另一个问题。在函数式编程中,它并不那么重要。如果不进行粗略介绍,它也没有用,因为通常您想使用flip来使合成工作。

答案 1 :(得分:1)

在第26页的1.4中的"Homotopy Type Theory"中,该咖喱版本的功能称为“交换”

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)

我不知道您为什么要为未咖喱的版本使用一个单独的名称,到底有什么区别...