&(アンパーサンド、アンド記号)が動詞と動詞にある場合の用法について。J言語のボキャブラリーのコンポーズというところを読み進みます。
u&v yはu v yと同値。したがって、+:&- 7は_14になる。さらに、u&vはu@vと同じである。
これはわかりやすい。つぎ。
x u&v yは(v x) u (v y)である。たとえば3 +&! 4は30であり、これは3の階乗と4の階乗の合計である。
3 +&! 4 30 !4 24 !3 6
これも問題ないかな? 次のように書いた方がわかりやすいと思うけど。
+/! 3 4 30
応用として次のような例が載っています。
3 +&^. 4 2.48491 ^ 3 +&^. 4 12 3 +&(10&^.) 4 1.07918 10 ^ 3 +&(10&^.) 4 12 3 +&.^. 4 12 3 +&.(10&^.) 4 12
解説:自然対数で3のログと4のログをとって合計すると2.48491。ログの足し算はもとの数の掛け算なので、自然対数の底eを2.48491を指数(エキスポネンシャル)として展開すると12になる。
10を底にした場合は、省略しないで書けば同様な結果になる。
&.(アンパーサンドドット)は、&と同じ働きをした結果に右側の動詞のオブバース(多くの場合インバース)を実施するので、^.のインバースは^であり、上記のような結果になる。
うむ。よくわかりませんね。
&.(アンパーサンドドット)の説明では、こう書いてあります。
u&.v y ↔ vi u v y x u&.v y ↔ vi (v x) u (v y)