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

6. Программа

Выдаваемая перед концертом программа, описывает последовательность музыкальных произведений, которые будут там исполнены. Как видно из ее корней: gram и pro, программа — нечто, написанное заранее о событиях, ею предписанных.

Подобным образом, вилка +/ % # из предыдущего раздела является программой, предписывающей вычисление среднего при применении ее к некоторому аргументу, как в выражении (+/%#)b. Однако, мы не будем обычно называть процедуру программой до тех пор, пока ей не присвоено имя, как показано ниже:
   mean=: +/ % #
   mean 2 3 4 5 6
4

   (geomean=: # %: */) 2 3 4 5 6
3.72792
Поскольку программа mean является новым глаголом, мы будем так же ссылаться на предложения типа mean=: +/ % # как на определение глагола (или просто определение), а на получающийся в их результате глагол как на определенный глагол или функцию.

Определенные глаголы могут учавствовать в определениях дополнительных глаголов способом, называемым иногда структурированным программированием. Например:
   MEAN=: sum % #
   sum=: +/
   MEAN 2 3 4 5 6
4
Ввод только глагола (без аргумента) показывает его определение, внешний союз (!:) позволяет установить вид этого отображения: коробочный, древовидный, линейный или скобочный. (Способ отображения глаголов можно так же настроить при помощи меню Edit|Configure...|View.) Таким образом:
   mean
+/ % #

   9!:3 (2 4 5)
   mean
+-----+-+-+
|+-+-+|%|#|
||+|/|| | |
|+-+-+| | |
+-----+-+-+
  +- / --- +
--+- %      
  +- #    
+/ % #

Упражнения

6.1   Введите AT=: i. +/ i. и исследуйте поведение программы AT при помощи выражний типа AT 5 .

6.2   Определите и проверьте подобные таблицы функций для других диадных глаголов.

6.3   Определите программы:
   tab=: +/
   ft=: i. tab i.
   test1=: ft = AT
Потом, применяя test1 к различным целым аргументам, убедитесь, что ft эквивалентна AT из Упражнения 6.1. Введите ft и AT без аргументов, чтобы увидеть их определения.

6.4   Определите aft=: ft f. и, используя test2=: aft = ft , убедитесь в эквивалентности ft и aft . Отобразите их определения и опишите эффект наречия f. .

Ответ: Наречие f. закрепляет глагол, к которому оно применено, заменяя каждое использованное имя его значением.

6.5   Переопределите tab из Упражнения 6.3 введя tab=: */ и посмотрите на эффект, производимый этим переопределением на ft и на его фиксированный вариант aft .

6.6   Определите mean=: +/ % # и опишите его поведение в применении к таблице, как в mean t=: (i. !/ i.) 5 .

Ответ: Результат есть среднее строк, не средние по строкам табличного аргумента.

6.7   Запишите выражение для среднего столбцов t .

Ответ: mean |: t или mean"1 t




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