1
私はelispで独立した単体テストを実行するための2つの一般的な関数に取り組んでいます。 1つは何かをして私のパッケージのすべてのカスタム変数をリセットすることです、もう1つは一時バッファで何かをして、私のパッケージのすべてのカスタム変数をリセットすることです。 (一般的な)ネストされた(funcall func)がmax-lisp-eval-depthを超えています、なぜですか?
機能:
(defun package-test-test (func)
""
(unwind-protect
(funcall func)
(reset-all-custom-package-variables)))
機能(一時バッファ):
(defun package-test-test-in-buffer (func)
""
(package-test-test
(lambda()
(with-temp-buffer (funcall func)))))
私は今呼び出すとき:それはmax-lisp-eval-depth
を超え、なぜ(何の再帰はありませんか)?
オプションメニューに 'デバッグオンERROR'を有効にして' *バックトレース* 'バッファをご検討ください。 – sds
後で関数として呼び出すときに2つのパラメータ名が同じであることは許されないようです。 – lordnik22
これはあなたの問題の症状だからですが、*起こっているのは、 'package-test-test'が' func'という変数を 'funcall func'という関数にバインドするということです。その関数を呼び出します。したがって、無限再帰。 – phils