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 |