虚数の実数部分と虚数部分の取り出しには+.(プラスドット)という動詞を使います。+.yとすると、引数yの実数部分(real part)と虚数部分(imaginary part)の2項目からなるリストを返します。たとえば、+3j5は3 5ですし、+.3は3 0です。
二項動詞としては、x+.yはxとyの最大公約数(gcd: greatest common divisor)を返します。引数xとyがブール型(0または1)の場合は、+.と*.は論理演算子としてorとandの機能になります。関数-.(マイナスドット)もブール演算子としてはnotの機能になります。
]y=: i+2*j. i=: i.4 0 1j2 2j4 3j6 +. y 0 0 1 2 2 4 3 6
引数xとyが最大公約数をもつ場合、最大公約数でxとyを割ると、1以外の共通の約数を持たない結果が得られます。すなわち最大公約数が1となります。さらに、xをyで割った結果のx%yの約分された形でもあります。
x=: 24 [ y=: 60 x;y;(x +. y);( (x , y) % (x +. y)) +--+--+--+---+ |24|60|12|2 5| +--+--+--+---+ lff=: , % +. NB.約分後の分数 x;y;(x lff y);(%/x lff y);(%/x,y);(+./x lff y) +--+--+---+---+---+-+ |24|60|2 5|0.4|0.4|1| +--+--+---+---+---+-+
関数=|(負でない数であることの確認)や関数=<.(整数であることの確認)の結果はブール型なので、フレーズ(=|)+.(=<.)は負でない数であるか、もしくは整数であるかというテストの結果を返す。
(test=: (=|) +. (=<.)) _2 _2.4 3 3.5 1 0 1 1
下記の例では、orとandの相対性を示している。
d (+./ ; *.&.-./ ; *./ ; +.&.-./) d=: 0 1 +---+---+---+---+ |0 1|0 1|0 0|0 0| |1 1|1 1|0 1|0 1| +---+---+---+---+