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 | Сделайте таблицу функций, встреченных до сих пор.
Сравните ее со следующей таблицей (где звездочкой разделяются
монадный и диадный случаи, как в "Поменять Знак Вычесть"):
| ||||||||||||||||||||||||||||||||||||||
| 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 |