Scala 有没有办法表达任何函数的反函数?
例如,如果我有一个函数f
像这样:
(x: Int) => x + 1
我希望能够编写一个反函数g
like:
(f(x): Int) => x // not a valid scala syntax
or
(x: Int) => inverse(f(x)) // inverse would return (x => x -1)
你知道在 Scala 中做这种事情的方法吗?
N.B: x => x+1
只是为了举例。我正在寻找一种通用方法来解决此类任务。
不,那样的事情是不可能的。问题是并非所有数学的函数有反函数。从维基百科条目反函数:
并非所有函数都有反函数。为了使这一规则适用,每个元素 y ∈ Y 必须对应不超过一个 x ∈ X;具有此属性的函数 被称为一对一,或信息保留,或注入。
例如,平方根 (sqrt
) 函数是平方函数 (x^2
) 只有当x >= 0
,其中平方根函数是一对一的。我们可以说,平方根函数的负数是平方函数的倒数,当x < 0
只是因为x^2 = (-x)^2
。但这是平方函数的特殊性质,一般情况下肯定不正确。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)