Pymacs - Невозможно вызвать метод, полученный с pymacs-eval
Руководство по Pymacs 0.25 имеет следующий фрагмент в разделе 3.4.2
(pymacs-exec "import re")
(setq matcher (pymacs-eval "re.compile('PATTERN').match"))
(pymacs-call matcher "PATTERN123")
В Emacs24.2 в Ubuntu 12.04 (32-разрядная версия) с Python 2.7.3 первые два оператора выполняются нормально, но третий выдает следующую ошибку:
pymacs-report-error: Python: Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/Pymacs.py", line 268, in loop
value = eval(text)
File "<string>", line 1
(lambda (&rest arguments) (pymacs-apply (quote (pymacs-python . 5)) arguments))(".")
Я не знаю много Elisp, но само лямбда-выражение оценивает без каких-либо ошибок с Cx Ce, поэтому я не знаю, что происходит не так. Также, глядя на Pymacs.py, похоже, что код пытается напрямую оценить код elisp. Пожалуйста помоги?
1 ответ
Решение
Так как pymacs-call
оператор возвращает лямбда-функцию, вызывая ее с (funcall matcher "PATTERN123")
работает как положено. Возможно, что пример кода в руководстве может быть неправильным.