|
|
|
= |
диада |
на булевских аргументах операция выполняется пословно (параллельно в рамках процессорного слова), как и для следующих глаголов:
= < <. <: > >. >: +. +: * *. *: ^ ~: | ! |
<.@f |
оба |
как и >.@f избегает нецелых промежуточных результатов на целых произв. точности |
<.@% |
диада |
так же <.@:% >.@% >.@:% ; спец. код для целых аргументов
см. информацию об изменениях в J 6.02 |
i.<./ |
монада |
так же i.>./ and i:<./ and i:>./ ;
спец. код для целых и действительных списков;
см. информацию об изменениях в J 5.04 |
i.>./ |
монада |
так же i.<./ , i:<./ и i:>./ ;
спец. код для целых и действительных списков
(см. информацию об изменениях в J 5.04) |
+ |
диада |
так же * и - ; под Windows,
реализована на ассемблере для целых
аргументов и операций вектор-вектор,
вектор-скаляр, и скаляр-вектор |
^ |
диада |
x^y вычисляется повторным умножением
для действительных x и целых y
|
m&|@^ |
диада |
избегает возведения в степень для целых аргументов |
m&|@(n&^) |
монада |
избегает возведения в степень для целых аргументов |
{&x^:a: |
монадаd |
спец. код для целых списков x ;
см. информацию об изменениях в J 5.04 |
{~^:a: |
диада |
спец. код;
см информацию об изменениях в J 5.04 |
f@]^:g |
диада |
применяет f вместо x&(f@]) на каждой
итерации; см.
информацию об изменениях в J 6.01 |
| |
диада |
спец. код, когда левый аргумент -- положительная степень двойки;
см. информацию об изменениях в J 6.02 |
+/ .* |
диада |
так же +./ .* и ~:/ .*. ;
спец. код в общем случае;
спец. код для булевского левого или правого аргумента и векторного правого
аргумента;
см. информацию об изменениях в J 5.04 и
информацию об изменениях в J 6.01 |
-/ .* |
монада |
спец. код в общем случае; спец. код для квадратных матриц;
спец. код для массивов матриц 2 на 2;
см информацию об изменениях в J 4.05 |
$, |
диада |
так же ($,)"r ; так
же {, {., }., e., ;
избегает разборки;
см. информацию об изменениях в J 4.06 |
x=.x,y |
- |
так же =: ; на месте (без перемещения данных в памяти);
см. информацию об изменениях в J 5.03 |
;@:(<@u;.n) |
диада |
спец. код;
см. информацию об изменениях в J 5.03 |
;@:{ |
диада |
спец. код;
см. информацию об изменениях в J 5.03 |
[;.0 |
оба |
так же ] ;
спец. код для векторных и матричных правых аргументов;
см. информацию об изменениях в J 5.01 |
f;.1 |
оба |
так же f;._1 f;.2 f;._2 ;
избегает построения ячеек аргумента для некоторых
глаголов: < $ , # [ ] {. {:
<@}. <@}: ; так же <&}. <@:}. и т.д.;
см. информацию об изменениях в J 4.05 |
f;.1 |
оба |
так же f;._1 f;.2 f;._2 ;
спец. код для прореженных булевских левых аргументов;
см. информацию об изменениях в J 4.06 |
f;.1 |
оба |
так же f;._1 f;.2 f;._2 ;
спец. код, когда результат f в каждом разрезе — упаковка или
атом;
см. информацию об изменениях в J 5.03 |
f/;.1 |
оба |
так же f;._1 f;.2 f;._2 ;
спец. код для ато́мных глаголов = < + +. * и т.д.;
см. информацию об изменениях в J 5.03 |
f;.3 |
оба |
так же f;._3 ;
спец. код для матричных аргументов |
;@:(<@u;.n) |
диада |
спец. код;
см. информацию об изменениях в J 5.03 |
# |
диада |
спец. код для булевских левых аргументов |
#: |
диада |
спец. код для (0,d)#:y , где d является положительной
степенью двойки и y целое;
см. информацию об изменениях в J 6.02 |
#: i.@(*/) |
монада |
так же (#: i.&(*/)) , и т.д.;
спец. код для неотрицательных целых векторов;
см. информацию об изменениях в J 4.05 |
x&(128!:3) |
монада |
спец. код, пред-вычисляющий таблицу значений CRC для каждого байта |
=/"r |
монада |
так же < <: > >: +. +: * *. *: ~: ;
работает пословно для булевских аргументов; так же спец. код
для вставок вдоль измерений длины 2
см. информацию об изменениях в J 5.03 |
+/ |
монада |
так же * и - ; под Windows
реализовано на ассемблере для целых аргументов |
,/ |
монада |
так же ,. ; ,&.> ,.&.> ; линейное время;
см. информацию об изменениях в J 4.05
и информацию об изменениях в J 7.01 |
m b./ |
оба |
спец. код для побитных булевских функций;
см. информацию об изменениях в J 5.01 |
f/@, |
монада |
так же f/@:, f/&, f/&:, ; избегает разборки;
см. информацию об изменениях в J 4.05 |
f/@:g |
диада |
также [: f/ g ; специализированный код для
ато́мных f и g ; дополнительная оптимизация для +/@:g ;
см. информацию об изменениях в J 6.01 |
#/. |
диада |
избегает построения ячеек аргумента;
см. информацию об изменениях в J 5.03и
информацию об изменениях в J 6.02 |
+//. |
монада |
так же +. *. = ~: <. <: >. >: 17 b. 22 b. 23 b. ;
избегает построения ячеек аргумента;
см. информацию об изменениях в J 6.01 |
+//. |
диада |
так же +. *. <. >. = ~: n b. для различных
векторных правых аргументов; избегает построение ячеек аргумента;
см. информацию об изменениях в J 5.03 |
</. i.@# |
монада |
так же x</.i.#x ; спец. код;
см. информацию об изменениях в J 5.03 |
({.,#)/. |
диада |
так же (#,{.)/. ; спец. код;
см. информацию об изменениях в J 5.04 |
(+/%#)/. |
диада |
избегает построения ячеек аргумента;
см. информацию об изменениях в J 6.02 |
+//.@(*/) |
диада |
так же ~://.@(*./) ~://.@(+./) +//.@(*./) +//.@(+./) (22 b.)//.@(17 b./) ;
избегает построения ячеек аргумента;
см. информацию об изменениях в J 6.01 |
/: |
оба |
так же \: ; спец. код для нескольких типов данных;
спец. код для аргументов с 5-ю или менее элементами;
см. информацию об изменениях в J 4.05 |
/: |
диада |
спец. код для случая, когда левый и правый аргументы — идентичные
булевские, текстовые, целые или действительные вектора;
так же для /:"1 , когда левый и правый аргументы —
идентичные булевские, текстовые, целые или действительные массивы;
то же для \: ;
см. информацию об изменениях в J 5.01 |
/:~ |
монада |
спец. код для булевских, текстовых, целых и действительных векторов;
так же для /:~"1 и /:"1~ ;
то же для \: ;
см. информацию об изменениях в J 5.01 |
/:@/: |
монада |
так же /:@:/: и /:&/: и т.д.; спец. код;
см. информацию об изменениях в J 5.04 |
{/: |
диада |
так же {/:~ ; спец. код для скалярных целых левых аргументов и целых или действительных векторных правых аргументов;
см.информацию об изменениях в J 6.03 |
#\ |
монада |
спец. код; см. информацию об изменениях в J 7.01 |
=/\ |
монада |
так же +. *. ~: ;
работает пословно для булевских аргументов |
+/\ |
монада |
так же * и - ; под Windows,
реализовано на ассемблере для целых аргументов |
+/\ |
диада |
так же <. >. +. *. = ~: m b. для ато́мных m e. 17 22 23 25 ; спец. код для положительных левых аргументов и булевских, целых или действительных правых аргументов;
см. информацию об изменениях в J 5.03 и
J 6.02 |
[\ |
диада |
так же ] и , ;
см. информацию об изменениях в J 5.01 |
2 f/\y |
диада |
спец. код;
см. информацию об изменениях в J 4.06
и J 6.01 |
m b./\ |
монада |
спец. код для побитных булевских функций;
см. информацию об изменениях в J 5.01 |
(+/%#)\ |
диада |
спец. код для положительных левых аргументов с целыми и действительными
правыми аргументами;
см. информацию об изменениях в J 5.03 |
#\. |
монада |
спец. код; см. информацию об изменениях в J 7.01 |
u/\. |
монада |
спец. код |
=/\. |
монада |
так-же < <: > >: +. +: *. *: ~: ;
работает пословно для булевских аргументов |
+/\. |
монада |
так же * и - ; под Windows,
реализовано на ассемблере для целых аргументов |
m b./\. |
монада |
спец. код для побитовых булевских функций;
см. информацию об изменениях в J 5.01 |
f/\. |
диада |
спец. код для поатомно ассоциативных глаголов f ;
см. информацию об изменениях в J 6.02 |
{ |
диада |
спец. код для правых аргументов некоторых типов данных;
спец. код для целых левых аргументов;
спец. код для индексирования первых двух измерений |
<"1@[ { ] |
диада |
избегает <"1 если левый аргумент — массив целых |
p{~q i.] |
монада |
так же (q i.]) { p"_ и q&i.{p"_ ;
спец. код, когда p и q текстовые списки;
см. информацию об изменениях в J 6.02 |
{/: |
диада |
так же {/:~ ; спец. код для скалярных целых левых
аргументов и целых или действительных векторных правых аргументов;
см. информацию об изменениях в J 6.03 |
a=: c}x,y,:z |
- |
избегает присоединения и наклеивания;
на месте, если c имеет булевский тип,
и a есть x или y ;
см. информацию об изменениях в J 4.05 |
y=: x i}y |
- |
на месте |
y=: y i}~ x |
- |
не выделяет памяти;
см. информацию об изменениях в J 6.03 |
f"r |
оба |
многие глаголы имеют встроенную поддержку ранга
монады и диады | | <. <: < >. >: + +. +: * *. *: - -: % ^ ~: | |. |: , ,: ! /: \: [ ] {. }. o. |
только монады | | -. %: ^. #. ,. / \ \. {: }: @. ? A. H. j. p. p: q: r. t. x: /:@/: |
только диады | | = > $ # { e. i. i: ($,) m b. -.@-: |
Для (+/%#)"r см. информацию об изменениях в J 6.02.
|
^@o. |
монада |
спец. код; см. информацию об изменениях в J 7.01
|
"."0@": |
монада |
так
же @: или & или &: вместо @ ;
специализированный код; см. информацию об изменениях в J 6.01
|
f0`...`fn@.v"0 |
монада |
спец. код, если f0 , ... , fn ато́мные;
см. информацию об изменениях в J 5.02 |
x&(128!:3) |
монада |
спец. код, предвычисляющий таблицу значения CRC для каждого байта |
m&i. |
монада |
так же m&i: -.&m e.&m ;
см. информацию об изменениях в J 5.04 |
u&.(a.&i.) |
монада |
спец. код если u-:u"0 ;
см. информацию об изменениях в J 6.02 |
m b./&.(a.&i.) |
монада |
избегает преобразования из/в целые;
см. информацию об изменениях в J 6.02 |
m b.&.(a.&i.) |
диада |
избегает преобразования из/в целые;
см. информацию об изменениях в J 6.02 |
? |
монада |
так же ?. ; спец код, если аргумент равен 2 |
?@$ |
диада |
так же ?. ; так же ?@# ; так же [: ? $ ; спец. код;
см. информацию об изменениях в J 5.03 |
e.i.0: |
диада |
см. строку для f i.0: ниже
|
E. |
монада |
спец. код для булевских и текстовых векторов |
E.i.1: |
диада |
см. строку для f i.0: ниже
|
i. |
монада |
так же i: ; спец. код для аргументов длины 1 |
i. |
диада |
так же e. и i: ; спец. код для нескольких типов данных;
спец. код для i.!.0 ;
спец. код для монады i.~ или x i. x ;
спец. код для аргументов с большим числом одинаковых столбцов;
см. информацию об изменениях в J 4.05 |
f i.0: |
диада |
спец. код для следующих функций;
см. информацию об изменениях в J 5.01,
J 5.03, и
J 5.04.
f i. 0: | |
i.&0@:f | |
первая позиция, где не x f y |
f i. 1: | |
i.&1@:f | |
первая позиция, где x f y |
f i: 0: | |
i:&0@:f | |
последняя позиция, где не x f y |
f i: 1: | |
i:&1@:f | |
последняя позиция, где x f y |
[: + / f | |
+ /@:f | |
количество позиций, где x f y |
[: +./ f | |
+./@:f | |
x f y где либо ? |
[: *./ f | |
*./@:f | |
x f y везде? |
[: I. f | |
I. @:f | |
позиции, где x f y |
Примечания: |
| | |
f один из глаголов = ~: < <: > >: E. e. |
| | |
Спец. код используется только для булевских, целых, действительных, текстовых и символьных аргументов |
| | |
Спец. код используется только для атомов и списков, если f не e. |
| | |
Если f есть E. , то спец. код только для
E.i.1: +/@:E. +./@:E. I.@:E. |
|
i.<./ |
монада |
так же i.>./ , i:<./ и i:>./ ;
спец. код для целых и действительных списков;
см. информацию об изменениях в J 5.04 |
m&i. |
монада |
так же m&i: -.&m e.&m ;
см. информацию об изменениях в J 5.04 |
p {~ q i. ] |
монада |
так же (q i. ]) { p"_ и q&i. { p"_ ;
спец. код, когда p и q текстовые списки;
см. информацию об изменениях в J 6.02 |
I.@:< |
диада |
см строку для f i.0: выше
|
+/%# |
монада |
спец. код для следующих случаев:
|