Пример 15.27. Использование функции call-specific-method
(clear) (defmethod + ((?а INTEGER) (?b INTEGER)) (* (-?a?b) (-?b?a))) (list-defmethods +) (preview-generic +12) (watch methods) (+ 1 2) (call-specific-method +112) (unwatch methods) Рис. 15.24. Использование функции call-specific-method
Функция get-method-restrictions (рис. 15.25) возвращает составную величину, содержащую информацию об ограничениях для данного метода, используя следующий формат: Ø минимальное число аргументов; Ø максимальное число аргументов (может равняться —1 для групповых символов); Ø количество ограничений; Ø индекс составной величины, содержащей информацию о первом ограничении; Ø индексы составных величин, содержащих информацию о втором, третьем ограничениях и т. д.; Ø индекс составной величины, содержащей информацию о последнем ограничении; Ø первое ограничение является ограничением запроса (true или false); Ø число ограничений классов; Ø первое, второе ограничения класса и т. д.; Ø последнее ограничение класса; Ø последнее ограничение является ограничением запроса (true или false); Ø число ограничений классов; Ø первое, второе ограничения класса и т. д.; Ø последнее ограничение класса. Определение 15.70. Функция get-method-restrictions (get-method-restrictions <имя-родовой функции> <индекс-метода> <выражение>*) Пример 15.28. Использование функции get-method-restrictions (clear) (defmethod foo 50 ((?a INTEGER SYMBOL) (?b (=11)) $?c)) (get-method-restrictions foo 50)
Рис. 15.25. Использование функции get-method-restrictions
|