絶対値

APLの入門書を読んでいたら絶対値の話があってxの絶対値というときに、|x|とは書かず、|xと書くというような説明がありました。そう言えば、J Primerで絶対値Absoluteという話はなかったなぁ、と見てみたら、|(たてぼう)はMagnitudeマグニチュードという名称になっている。ひょっとすると複素数に拡大したときに概念が変わっているのかもしれません。

   |3
3
   |_3
3
   |3j4
5

dyad(2項動詞)としての|(たてぼう)は、yをxで割ったあまりです。後ろの引数に前の引数を作用させるのはAPL/J言語ではあたりまえですが、気持ちの悪いひともいるようで、その場合は下記のように動詞を定義して、後ろ前逆に書けるようにします。

   4|3
3
   3|7
1
   7(|~)3
1
   mod =: |~
   7 mod 3
1