1

Pymacs 0.25のマニュアルには、セクション3.4.2に次のスニペットがあります。

(pymacs-exec "import re")
(setq matcher (pymacs-eval "re.compile('PATTERN').match"))
(pymacs-call matcher "PATTERN123")

Python2.7.3を搭載したUbuntu12.04(32ビット)上のEmacs24.2では、最初の2つのステートメントは正常に実行されますが、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コードを直接評価しようとしているように見えます。助けてください?

4

1 に答える 1

1

pymacs-callステートメントはラムダ関数を返すため、で呼び出すと期待どおりに機能し(funcall matcher "PATTERN123")ます。マニュアルのサンプルコードが間違っている可能性があります。

于 2013-02-18T05:27:21.647 に答える