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

7. Союз "С"

Диада, например такая как ^ , может произвести семейство монадных функций:
   ]b=: i.7
0 1 2 3 4 5 6

   b^2                        Квадраты
0 1 4 9 16 25 36

   b^3                        Кубы
0 1 8 27 64 125 216

   b^0.5                      Квадратные корни
0 1 1.41421 1.73205 2 2.23607 2.44949
Союз с & позволяет привязать фиксированный аргумент к диаде, производя соответствующий монадный глагол. Например:
   square=: ^&2               Квадрат (степень с 2)
   square b
0 1 4 9 16 25 36
  
   (sqrt=: ^&0.5) b           Квадратный корень
0 1 1.41421 1.73205 2 2.23607 2.44949
Левый аргумент можно привязать подобным образом:
   Log=: 10&^.                Логарифм по основанию 10
   Log 2 4 6 8 10 100 1000
0.30103 0.60206 0.778151 0.90309 1 2 3
Глаголы с привязанными аргументами можно, конечно, использовать и в вилках. Например:
   in29=: 2&< *. <&9          Проверка на попадание в интервал
   in29 0 1 2 5 8 13 21
0 0 0 1 1 0 0

   IN29=: in29 # ]            Выборка попавших
   IN29 0 1 2 5 8 13 21
5 8

   LOE=: <+.=
   5 LOE 3 4 5 6 7
0 0 1 1 1

   integertest=: <. = ]       Монада <. дает пол (ближайшее меньшее целое)
   integertest 0 0.5 1 1.5 2 2.5 3
1 0 1 0 1 0 1
  
   int=: integertest
   int (i.13)%3
1 0 0 1 0 0 1 0 0 1 0 0 1

Упражнения

7.1   В программе IN29 глагол # использован диадно. Введите фразы типа (j=: 3 0 4 0 1) # i.5 для исследования # . Каким будет результат #j#i.5 ? (попробуйте и 1j1#i.5 )

Ответ: +/j

7.2   Закройте ответы справа и примените следующие программы к различным спискам, чтобы выяснить (описав его на русском) предназначение каждой:
   test1=: >&10 *. <&100      Проверить, если в интервале от 10 до 100
   int=: ] = <.               Проверить, если целое
   test2=: int *. test1       Проверить, если целое и от 10 до 100
   test3=: int +. test1       Проверить, если целое или от 10 до 100
   sel=: test2 # ]            Выбрать целые от 10 до 100
7.3   В предыдущем упражнении, закройте определения программ слева и попробуйте написать новые, производящие описанные эффекты.

7.4   Просмотрите еще раз использование закрепляющего наречия в Упражнениях 6.4-5, и поэкспериментируйте с его использованиям для программ из Упражнения 7.2.




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