オブバースというのがあってたぶん逆関数のことで、たとえば自乗の逆関数はルート(自乗根)、掛け算の逆関数は割り算とか思うのですが、Jディクショナリーはもう少しややこしい言い方をしている。わたしの言う意味の逆関数はインバースであり、オブバースはそれを一般化したもののようです。
(翻訳)
f^:_1の結果は関数fのオブバースと呼ばれる。もしf=: g :. hとするとhがオブバースである。そうでない場合、fのインバースである。
インバースは%:(パーセントコロン、自乗根、ルート)を含む25のプリミティブ(原始関数)について用意されているだけでなく、-&3や10&^、2&o.のような係数つき二項動詞(bonded dyad)についても用意されている。さらにu@v^:_1は(v^:_)@(u^:_1)で与えられる。
(翻訳終り)
よくわかりませんが、次の例はわかる。
fFc=: (32&+)@(*&1.8) ]b=:fFc _40 0 100 _40 32 212 cFf=: fFc^:_1 cFf b _40 0 100
fFcは摂氏を華氏に変換する関数で、9/5倍して32を足している。その結果をbに代入しておいて、それにfFc^:_1というfFcの逆関数を作用させると、もとの摂氏に戻る。
ここまでの知識で少しトライアンドエラーしてみよう。
(-&3) i.5 NB.0 1 2 3 4からそれぞれ3を引く _3 _2 _1 0 1 (-&3) ^:_1 i.5 NB.その逆関数は3を足すになる 3 4 5 6 7 ]b=:(10&^) i.5 NB.10の0 1 2 3 4乗 1 10 100 1000 10000 (10&^)^:_1 b NB.その逆関数は10を底とする対数(ログ) 0 1 2 3 4 (10&^.) b NB.^.(カレットドット)は対数 0 1 2 3 4 ]b=:(2&o.)i.5 NB.2&o.(2&オードット)はコサイン 1 0.540302 _0.416147 _0.989992 _0.653644 (2&o.)^:_1 b NB.逆関数でコサインの結果にもどらない 0 1 2 3 2.28319 (2&o.) 2.28319 NB.なぜならy=f(x)でxとyが一対一でない _0.653647 (2&o.) 4 NB.cos(4)とcos(2.28319)がほぼ同じ値 _0.653644
とりあえず、以上。