function - Scala 中的反函数

标签 function scala inverse

有没有办法在 Scala 中表达任何函数的逆函数?

例如,如果我有一个函数 f像这样:

(x: Int) => x + 1

我希望能够写一个反函数 g喜欢:
(f(x): Int) => x // not a valid scala syntax

或者
(x: Int) => inverse(f(x)) // inverse would return (x => x -1)

你知道在 Scala 中做这种事情的方法吗?

注:x => x+1只是为了举例。我正在寻找解决此类任务的通用方法。

最佳答案

不,这样的事情是不可能的。问题是并不是所有的数学函数都有逆。来自维基百科条目 inverse functions :

Not all functions have an inverse. For this rule to be applicable, each element y ∈ Y must correspond to no more than one x ∈ X; a function ƒ with this property is called one-to-one, or information-preserving, or an injection.



例如,平方根 ( sqrt ) 函数是平方函数 ( x^2 ) 的逆函数,只有当 x >= 0 时,其中平方根函数是一对一的。当x < 0时,我们可以说平方根函数的负数是平方函数的倒数。只因为x^2 = (-x)^2 .但这是平方函数的一个特殊属性,一般来说肯定不是这样。

关于function - Scala 中的反函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38166190/

相关文章:

C 程序没有进入任何 for 循环?

c - C 中的快速排序递归函数 - 不适用于大量元素

javascript - 主干设置方法,传递一个变量作为键?

scala - Akka actor 转发消息并继续

scala - 对象自注释是什么意思?

scala - 在 Scala 中,如何使用隐式转换为 "add"方法到公共(public)父类的子类?

Python 正则表达式在单行上进行反向/负匹配,而不是在多行上,不使用 SPLIT(),并且不测试以前的匹配组

associations - 逆关联规则

jquery - DataTables row.add() 函数不会添加数组中的所有行

Android 带参数方法的双向数据绑定(bind)