| |
|
|
| = |
диада |
на булевских аргументах операция выполняется пословно (параллельно в рамках процессорного слова), как и для следующих глаголов:
= < <. <: > >. >: +. +: * *. *: ^ ~: | ! |
| <.@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: выше
|
| +/%# |
монада |
спец. код для следующих случаев:
|