>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь

В Степени u^:n  _ _ _  

n может быть целым, упаковкой или герундием.

Целое. Глагол u применяется n раз. Бесконечная степень n повторяет вычисления до достижения неподвижной точки (предела) u . Например, (2&o.^:_)1 дает 0.73908 , т.е. решение уравнения y=Cos y . Если n отрицательно, обращение u^:_1 (см. ниже) применяется |n раз. Наконец, u^:n y для массива n получается, сборкой всех u^:a y (для всех атомов a из n) в результирующий массив.

Обращение используется и в u&.v , узнать его для данного v можно при помощи v b. _1 . Повторного применения глагола можно достигнуть и при помощи С (&).

Упаковка. Если n упаковка, то ее содержимое должно быть атомом, тогда u^:(<m)
  u^:(i.m) y    если m положительное целое
  u^:(i.k) y   если m есть _ или '' , где k — наименьшее положительное целое, такое что (u^:(k-1) y) -: u^:k y
  u^:_1^:(<|m) y  если m отрицательно

Герундий. См. справа.
 

 

n может быть целым, упаковкой или герундием.

Целое или Упаковка. x u^:n y x&u^:n y

Герундий. (Сравните с применением герундия в наречии Заменяя })
x u^:(v0`v1`v2)y (x v0 y)u^:(x v1 y) (x v2 y)
x u^:(   v1`v2)y x u^:([`v1`v2) y
  u^:(   v1`v2)y u^:(v1 y) (v2 y)


Обращения (которые обычно, но не всегда, являются обратными друг другу глаголами в строгом смысле) можно разбить на шесть классов:

1.  Функции, обращающие сами себя + - -. % %. |. |: /: [ ] C. p.

2.  Пары в следующих таблицах:
 
<   >
<:   >:
+.   j./"1"_
+:   -:
*.   r./"1"_
*:   %:
^   ^.
$.   $.^:_1
,:   {.
;:   ;@(,&' '&.>"1)
#.   #:
 
!   3 : '(-(!-y"_)%1e_3&* !"0 D:1 ])^:_^.y'
3!:1   3!:2
3!:3   3!:2
\:   /:@|.
".   ":
j.   %&0j1
o.   %&1p1
p:   π(n)
q:   */
r.   %&0j1@^.
s:   5&s:
u:   3&u:
x:   _1&x:
 
+~   -:
*~   %:
^~   3 : '(- -&b@(*^.) % >:@^.)^:_ b=.^.y'"0
,~   <.@-:@# {. ]
,:~   {.
;~   >@{.
j.~   %&1j1

3.  Очевидно обратимые связанные диады, такие как -&3 и 10&^. и 1 0 2&|: и 3&|. и 1&o. и a.&i. , а так же u@v и u&v , если u и v обратимы.

4.  Монады вида v/\ и v/\. , где v один из + * - % = ~:

5.  Обращения, указанные явно союзом :.

6.  Следующие случаи заслуживают особого внимания:
p:^:_1 n дает число простых чисел меньших n, обозначается в математике как π(n)
q:^:_1 есть */
b&#^:_1 , где b булевский список, производит расширение массива (используемый при этом атом-заполнитель f можно настроить b&#^:_1!.f или #^:_1!.f )
a&#.^:_1 дает представление по основанию a
!^:_1 и !&n^:_1 и n&!^:_1 производят ожидаемые результаты
{= и i."1&1 являются обратными друг другу; они выполняют преобразование между представлениями перестановки в виде вектора целых чисел и в виде булевской матрицы

Пример 1:
   (] ; +/\ ; +/\^:2 ; +/\^:0 1 2 3 _1 _2 _3 _4) 1 2 3 4 5
+---------+-----------+------------+-------------+
|1 2 3 4 5|1 3 6 10 15|1 4 10 20 35|1  2  3  4  5|
|         |           |            |1  3  6 10 15|
|         |           |            |1  4 10 20 35|
|         |           |            |1  5 15 35 70|
|         |           |            |1  1  1  1  1|
|         |           |            |1  0  0  0  0|
|         |           |            |1 _1  0  0  0|
|         |           |            |1 _2  1  0  0|
+---------+-----------+------------+-------------+

Пример 2: Последовательность чисел Фибоначчи

   +/\@|.^:(i.10) 0 1
 0  1
 1  1
 1  2
 2  3
 3  5
 5  8
 8 13
13 21
21 34
34 55
   {. +/\@|.^:n 0 1x [ n=:128       NB. n-ное число Фибоначчи
251728825683549488150424261
   {.{: +/ .*~^:k 0 1,:1 1x [ k=:7  NB. (2^k)-нное число Фибоначчи
251728825683549488150424261

Пример 3: Итерация Ньютона

   -:@(+2&%)^:(0 1 2 3) 1
1 1.5 1.41667 1.41422
   -:@(+2&%)^:(_) 1
1.41421
   -:@(+2&%)^:a: 1
1 1.5 1.41667 1.41422 1.41421 1.41421
   %: 2
1.41421

Пример 4: Подгруппа, генерируемая Множеством Перестановок

   sg=: ~. @ (,/) @ ({"1/~) ^: _ @ (i.@{:@$ , ])
   sg ,: 1 2 3 0 4
0 1 2 3 4
1 2 3 0 4
2 3 0 1 4
3 0 1 2 4
   # sg 1 2 3 4 5 0 ,: 1 0 2 3 4 5
720

Пример 5: Транзитивное Замыкание

   x=: (#x)<. (#x),~x=: (i.20)+1+20 ?.@# 3
   (i.#x) ,: x
0 1 2 3 4 5 6 7  8  9 10 11 12 13 14 15 16 17 18 19 20
1 4 5 5 7 6 9 9 10 12 11 14 14 15 16 18 18 18 20 20 20
   {&x^:(<15) 0
0 1 4 7 9 12 14 16 18 20 20 20 20 20 20
   {&x^:a: 0
0 1 4 7 9 12 14 16 18 20
   x {~^:a: 0
0 1 4 7 9 12 14 16 18 20

Интерпретация: x представляет орграф с вершинами, пронумерованными как i.#x и ребрами от i к i{x . Например, выше присутствуют ребра: 0 1 , 1 4 , 2 5 , 3 5 и так далее. Тогда {&x^:a:0 или x{~^:a:0 вычисляет все узлы, достижимые из узла 0.

Example 6: Транзитивное Замыкание

Каждая запись в файле начинается с байта, указывающего ее длину (исключая байт, ее кодирующий), после которого следует содержимое записи. Получив такой файл, глагол rec производит список упакованных записей.

rec=: 3 : 0
 n=. #y
 d=. _1 ,~ n<.1+(i.n)+a.i.y
 m=. d {~^:a: 0
 ((i.n) e. m) <;._1 y
)

randomfile=: 3 : 0
 c  =. 1+y ?@$ 255           NB. длины записей
 rec=. {&a.&.> c ?@$&.> 256  NB. содержимое записей
 (c{a.),&.> rec              NB. записи, вместе с их длинами
)

   boxed_rec=: randomfile 1000
   $ boxed_rec
1000

   file=: ; boxed_rec
   $ file
132045

   r=: rec file
   $r
1000

   r -: }.&.> boxed_rec
1

Последняя фраза проверяет отсутствие в результате rec байт, кодирующих длину записей.



>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь