我正在尝试编写一个高阶 Racket 函数,该函数采用一个变量的一阶函数并返回其逆函数。我知道它必须以这样的方式开始:
(让 [( 逆 (lambda (f) (λ (y) ... )))])
我认为这是因为inverse
必须采用一个函数,该函数返回一个函数,该函数采用 ay
并返回x
这样的(= (f x) y)
. 换句话说,逆合约是这样的:
; inverse : (number? -> number?) -> (number? -> number?)
我只是想弄清楚省略号在哪里?
编辑:为了回应人们说这是不可能的,我愿意接受一个反函数,当给定y
返回一个可能的x
. 为了回应关于函数没有逆的评论,请注意我为f
. 它是一个(number? -> number?)
映射,因此有一个逆映射。