J言語で+(プラス)を単項動詞として使うと引数の共役(きょうやく、conjugate)を返します。
複素数yは共役を掛けるとyの絶対値の二乗になります。
]y=:3j4 NB.複素数 3j4 |y NB.絶対値 5 y * +y NB.yとyの共役を掛ける 25 +y 3j_4 3j4 * +3j4 25 3j4 * 3j_4 25
また、J言語には、j.(ジェイドット)という動詞があります。これは単項動詞で引数にマイナス1のルート(=>0j1)を掛けるものです。
]i=:i.5 0 1 2 3 4 j. i 0 0j1 0j2 0j3 0j4 0j1 * i.5 0 0j1 0j2 0j3 0j4 ]y=: i + 2 * j. i 0 1j2 2j4 3j6 4j8 +y 0 1j_2 2j_4 3j_6 4j_8 y * +y 0 5 20 45 80 %: y * +y 0 2.23607 4.47214 6.7082 8.94427 |y 0 2.23607 4.47214 6.7082 8.94427
yの共役は(|y*y)%yと表現することもできる。
(|y*y)%y 0 1j_2 2j_4 3j_6 4j_8
以上