|
|||||||||
Для облегчения ввода конструкций Лиспа поддерживается аппарат шаблонов. Шаблон - это обычный текстовый файл в директории \Patt, с именем "pattern.patt". Этот текстовый файл содержит шаблоны всех конструкций (функций) HomeLisp-a, описанных в этом руководстве. Функции сгруппированы по типам, а в пределах типа отсортированы по алфавиту. Пользователь HomeLisp-а может добавлять свои шаблоны или менять существующие. Вставку шаблонов можно использовать как при работе в среде разработки, так и при написании функций-обработчиков событий в экранном дизайнере. |
|||||||||
|
|||||||||
|
|||||||||
Для вставки шаблона следует нажать кнопку 11 (для среды разработки) или кнопку 6 (для экранного дизайнера). В обоих случаях режим активизируется кнопкой с одной и той же иконкой: Пользователю будет показана форма выбора шаблона:
Сначала необходимо выбрать из выпадающего списка группу, к которой принадлежит требуемая функция:
После выбора группы функций, необходимо выбрать конкретную функцию из списка, расположенного на форме. При этом можно использовать средства поиска. Для этого следует ввести контекст поиска в поле ввода, заключенное в рамку "искать". Станут доступны две кнопки, расположенные правее поля ввода. Первая кнопка начинает поиск с начала группы функций, вторая - продолжает его. Если галочка "Сохранить в буфере обмена" включена, то вставляемый текст сохраняется в буфере обмена Windows и может быть использован в дальнейшем. После нажатия кнопки OK шаблон вставляется в область ввода с текущего положения курсора.
Автор предлагает читателю рассмотреть аппарат шаблонов на конкретном примере: давайте составим
функцию, которая будет брать на вход один аргумент целого типа, а возвращать атом Чет,
если значение аргумента четно, и атом Нечет в противном случае.
Назовем нашу функцию ЧетНечет. Это имя вносим вместо слова "Атом" в конструкции DEFUN на
приведенном выше рисунке. Поскольку список параметров нашей функции состоит из единственного аргумента, меняем первое слово "Список"
на (x). Тело функции должно быть написано нами. Очевидно, что оно должно представлять собой вызов
COND. Убираем второе слово "Список" и оставляем курсор под списком (x):
Вызываем режим Вставка шаблна, выбираем группу Функции классического ЛИСПа и
находим функцию COND, и вставляем ее в область ввода так, как описано выше. При этом
должно получиться следующее:
Первое условие предложения COND будет фиксировать четное значение аргумента, а устовие "по умолчанию" будет фиксировать нечетное значение аргумента. Заготовки остальных условий просто стираются. Все это на Лиспе реализуется так, как показано на нижеследующем рисунке: Пользователь должен установить курсор после последней скобки и нажать Enter. Функция будет обработана ядром интерпретатора. В области ответа пользователь должен увидеть: Теперь пользователь может убедиться в работоспособности новой функции, введя соответствующие команды и получив правильные ответы: Автор надеется, что читатель вполне уяснил, как пользоваться стандартными шаблонами. |
|||||||||
|
|||||||||
Для добавления своих функций в файл "pattern.patt" нужно знать структуру этого
файла. Структура проста: включаемые шаблоны группируются по типам функций (классический
Лисп, работа с BLOB-ами, работа с файлами и т.д.).
Из врезки видно, как устроен описываемый файл. Редактировать его можно любым редактором (кроме, естественно, Word-а!). Рекомендуется перед редактированием сделать резервную копию файла. |
|||||||||