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 |