Loi*_*oic 6 scala function inverse
有没有办法表达scala中任何函数的反函数?
例如,如果我有这样的函数f
(x:Int)=> x + 1
我想能够编写一个反函数g
(f(x):Int)=> x //不是有效的scala语法
要么
(x:Int)=> inverse(f(x))// inverse将返回(x => x -1)
你知道在scala中做这种事情的方法吗?
NB = x => x + 1仅用于示例我正在寻找解决此类任务的通用方法
谢谢!
ddk*_*ddk 15
不,这样的事情是不可能的.问题是并非所有数学函数都有逆.来自维基百科的反函数条目:
并非所有函数都有反转.要使此规则适用,每个元素y∈Y必须对应于不超过一个x∈X; 具有此属性的函数f被称为一对一,或信息保留或注入.
例如,square root(sqrt)函数x^2只有在x >= 0平方根函数是一对一的情况下才是square函数()的反函数.我们可以说平方根函数的负数是平方函数的倒数,x < 0只是因为x^2 = (-x)^2.但这是square函数的一个特殊属性,一般来说肯定不正确.
sqrt
x^2
x >= 0
x < 0
x^2 = (-x)^2
归档时间:
13 年,3 月 前
查看次数:
6281 次
最近记录:
6 年,10 月 前