APL/J言語:ランク”(クオート)

APL/J言語:ランク"(クオート)
ランク"(クオート)は、m"nというように使われる場合、mというコンスタントな結果をnのそれぞれのセルに適用する。nの使われるランクは3 $&.|. $nである。たとえば$n=2ならば、三つのランクは2 2 2となり、$n=2 3ならば、三つのランクは3 2 3となる。負のランクは補数となり、m"(-r) yはm"(0>.(#$y)-r)"_ yと同等である。
従って、以下のようになる。

   v=: 2 3 5 7
   m=: i. 2 3
   m ; (m"0 v) ; (m"1 v); (m"1 m)
 +-----+-----+-----+-----+
 |0 1 2|0 1 2|0 1 2|0 1 2|
 |3 4 5|3 4 5|3 4 5|3 4 5|
 |     |     |     |     |
 |     |0 1 2|     |0 1 2|
 |     |3 4 5|     |3 4 5|
 |     |     |     |     |
 |     |0 1 2|     |     |
 |     |3 4 5|     |     |
 |     |     |     |     |
 |     |0 1 2|     |     |
 |     |3 4 5|     |     |
 +-----+-----+-----+-----+
   v m" 1 2 m
0 1 2
3 4 5

ちなみに、_9:から9:までの動詞はコンスタント動詞であり、_9"_から9"_と同等である。以下の例を見よ。

   odds=: 1: + 2: * i.
   odds 5
1 3 5 7 9