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

2. Двойственность

Не смотрите сразу на комментарии справа, а попробуйте дать свои.
   7-5                        Функция в предложении 7-5 применяется к двум
2                             аргументам, и производит вычитание, но в
   -5                         предложении -5 она применяется к одному аргументу и
_5                            производит перемену знака.

                              Заимствуя термин "валентность" из химии, можно
                              сказать, что символ - имеет переменную валентность,
   7%5                        определяемую из контекста.
1.4

   %5                         Эта двойственность - знакомая из арифметики;
0.2                           распространена здесь и на другие функции.

   3^2
9

   ^2                         Экспонента (тоесть 2.71828^2)
7.38906

            
   a=: i. 5                   Функция целые или список целых
   a
0 1 2 3 4                     список или вектор

   a i. 3 1                   Функция индекс или индекс в
3 1
  
   b=: 'Canada'               Одинарные кавычки обрамляют текстовую строку
   b i. 'da'
4 1
  
   $ a                        Функция взять размерность
5

   3 4 $ a                    Функция придать размерность
0 1 2 3                       Таблица или матрица
4 0 1 2
3 4 0 1
  
   3 4 $ b
Cana
daCa
nada

   %a                         Функции применимы к спискам
_ 1 0.5 0.333333 0.25         Отдельно стоящий символ _ означает бесконечность

Упражнения

2.1   Введите следующие предложения (и, возможно, подобные, но с другими аргументами), посмотрите на результаты и опишите действие обоих (монадного и диадного) вариантов каждой функции:
   a=: 3 1 4 1 5 9
   b=: 'Canada'
   #a
   1 0 1 0 1 3 # a
   1 0 1 0 1 3 # b
   /: a
   /: b
   a /: a
   a /: b
   b /: a
   b /: b
   c=: 'can''t'
   c
   #c
   c /: c
2.2   Сделайте таблицу функций, встреченных до сих пор. Сравните ее со следующей таблицей (где звездочкой разделяются монадный и диадный случаи, как в "Поменять Знак • Вычесть"):
                                    .               :        
+ • Прибавить • Или
- Поменять Знак • Вычесть
* • Умножить • И
% Обратить • Разделить
^ Экспонента • В Степени • Логарифм
< • Меньше • Меньшее
> • Больше • Большее
= • Равно Есть (присваивание)
i Целые • Индекс В    
$ Размерность • Придать Размерность
/ Упоряд. Перестановка • Упорядочить
# Количество Элементов • Копировать

2.3   Попробуйте заполнить пустые места в таблице Упражнения 2.2, экспериментируя на компьютере с соответствующими выражениями. Введите, например, ^.10 и ^. 2.71828 , чтобы исследовать отсутствующий (монадный) вариант ^. . Введите %: 4 , %: -4 и +%: -4 для исследования случая % с двоеточием.

Не тратьте слишком много времени на результаты, которые не понятны сразу (такие как, возможно, комплексные числа или упаковки, производимые монадой <). К ним лучше вернуться после того как мы пройдем несколько следующих разделов. Заметьте, что эффект некоторых функций становится заметным только когда они применяются к аргументам, отличным от положительных целых: попробуйте <.1 2 3 4 и <.3.4 5.2 3.6 для определения эффекта монады <. .
 
2.4   Если b=: 3.4 5.2 3.6 , то <.b возвращает аргумент b , округленный вниз до ближайшего целого. Напишите и протестируйте предложение, округляющее аргумент b до ближайшего целого.

Ответ: <.(b+0.5) или <.b+0.5 или <.b+1r2
 
2.5   Введите 2 4 3 $ i. 5 , чтобы увидеть пример массива ранга 3 (количество измерений равно 3) или отчета (для двух лет, четырех кварталов по три месяца в каждом).
 
2.6   Введите несколько раз подряд ?9 и определите действие функции ? . Потом введите t=: ?3 5 $ 9 , чтобы получить таблицу для дальнейших экспериментов.

Ответ: ? — генератор (псевдо-) случайных чисел; ?n выдает случайный элемент из списка i.n




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