Мне не принадлежит книга, но я нашел код и похоже, что ты прав. Вот функция (для других, чтобы увидеть):
(def print-element-handler
(proxy [DefaultHandler] []
(startElement
[uri local qname atts]
(println (format "Saw element: %s" qname)))))
Ты прав насчет того, что он делает. Прокси-оператор создает новый класс, эквивалентный этому Java-коду:
public class SomeNewClass extends DefaultHandler {
public void startElement(String uri,
String localName,
String qName,
Attributes attributes) {
System.out.println(*stuff*);
}
}
Таким образом, прокси-оператор определяет этот класс и дает вам экземпляр, который теперь содержится в print-element-handler.