functional-programming - 在纯函数式语言中,有没有算法可以得到反函数?

标签 functional-programming

在像 Haskell 这样的纯函数语言中,是否有一种算法可以在双射时获得函数的逆函数(编辑)?有没有一种特定的方法来对您的函数进行编程?

最佳答案

在某些情况下,是的!有一篇漂亮的论文叫做 Bidirectionalization for Free!其中讨论了几种情况——当你的函数足够多态时——可以完全自动地导出反函数。 (它还讨论了当函数不是多态时,是什么让问题变得困难。)

如果你的函数是可逆的,你得到的是逆函数(带有虚假输入);在其他情况下,您会得到一个尝试“合并”旧输入值和新输出值的函数。

关于functional-programming - 在纯函数式语言中,有没有算法可以得到反函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13404208/

相关文章:

c++ - C/C++脚本优化

java - 功能接口(interface)实现和用例

scala - 如何显式返回 Unit?

c# - 如何在列表和字典之间进行左连接?

java - 何时倾向于采用 Consumer<T> 而不是仅仅返回 T?

Java 函数式编程 : creating a map of functions

c# - 循环的 Lambda 表达式转换以显示列表

haskell - 如何根据 Haskell 中的输入值限制类型?

scala - 在Scala中使用flatMap时,如何将两个Option [String]变量合并为一个?

javascript - lambda : rewriting to point free style