Форум — Development eq: Variable binding depth exceeds max-specpdl-size elisp, emacs 0 1 Как можно проверить код, во время написания, на такую ошибку. Ну, и что делать, чтобы обрулить эту ошибку. Ответить на это сообщение Ссылка
Вангану что у тебя что-то зациклилось. Но можешь попробовать тупо установить этот лимит побольше. no-such-file ★★★★★ (04.11.23 20:42:12 MSK) Ответить на это сообщение Показать ответы Ссылка
что делать, чтобы обрулить эту ошибкуизбегать глубокой рекурсии, увеличить max-specpdl-size Bad_ptr ★★★★★ (04.11.23 20:42:19 MSK) Ответить на это сообщение Показать ответ Ссылка
Ответ на: комментарий от no-such-file 04.11.23 20:42:12 MSK Поставил 2500Evaluate buffer find-position: Lisp nesting exceeds ‘max-lisp-eval-depth’Вангану что у тебя что-то зациклилось. Я его вручную эвалюировал, работал как надо. saufesma ★ (04.11.23 20:56:46 MSK) автор топика Ответить на это сообщение Ссылка
Ответ на: комментарий от no-such-file 04.11.23 20:42:12 MSK Вангану что у тебя что-то зациклилось.А это место можно как-то выловить? saufesma ★ (04.11.23 21:02:53 MSK) автор топика Ответить на это сообщение Показать ответ Ссылка
Ответ на: комментарий от Bad_ptr 04.11.23 20:42:19 MSK А я кажется вспомнил. Как-то я переписал рекурсивные функции на loop и ошибка исчезла. Попробую. saufesma ★ (04.11.23 21:31:48 MSK) автор топика Ответить на это сообщение Ссылка
Ответ на: комментарий от saufesma 04.11.23 21:02:53 MSK А это место можно как-то выловить?`M-x toggle-debug-on-error`запустить функцию и смотреть бэктрейс Bad_ptr ★★★★★ (04.11.23 21:35:53 MSK) Ответить на это сообщение Показать ответы Ссылка 👍 1
Ответ на: комментарий от Bad_ptr 04.11.23 21:35:53 MSK запустить функцию и смотреть бэктрейсфункцию запустил, а вот где back trace находится не знаю. Нашел, заработало! saufesma ★ (04.11.23 22:13:34 MSK) автор топика Последнее исправление: saufesma 04.11.23 22:18:18 MSK (всего исправлений: 2) Ответить на это сообщение Ссылка
Ответ на: комментарий от Bad_ptr 04.11.23 21:35:53 MSK Выловил вот эту функцию ;;(setq lst1 '(1 4 2 3)) ;;(setq lst2 '(1 2 5 3)) (setq *count* 0) (defun find-position (l1 l2 count) (if (eq (car l1) (car l2)) (find-position (cdr l1) (cdr l2) (1+ count)) count)) (find-position list-A list-B *count*) Backtrace Debugger entered--Lisp error: (error "Lisp nesting exceeds ‘max-lisp-eval-depth’") (if (eq (car l1) (car l2)) (find-position (cdr l1) (cdr l2) (1+ count)) count) find-position(nil nil 397) (if (eq (car l1) (car l2)) (find-position (cdr l1) (cdr l2) (1+ count)) count) find-position(nil nil 396) (if (eq (car l1) (car l2)) (find-position (cdr l1) (cdr l2) (1+ count)) count) find-position(nil nil 395) ........................................... (if (eq (car l1) (car l2)) (find-position (cdr l1) (cdr l2) (1+ count)) count) find-position((0) (0) 0) eval-buffer() ; Reading at buffer position 13458 funcall-interactively(eval-buffer) call-interactively(eval-buffer nil nil) command-execute(eval-buffer) а вот понять, что не ладно с этой функцией не могу. saufesma ★ (04.11.23 22:28:08 MSK) автор топика Ответить на это сообщение Показать ответ Ссылка
Ответ на: комментарий от saufesma 04.11.23 22:28:08 MSK у тебя нету условия завершения рекурсии в случает если оба аргумента nil Bad_ptr ★★★★★ (04.11.23 22:38:57 MSK) Ответить на это сообщение Показать ответ Ссылка
Ответ на: комментарий от Bad_ptr 04.11.23 22:38:57 MSK По алгоритму они не бывают nil. А как по другому я даже сообразить не могу. saufesma ★ (04.11.23 22:42:19 MSK) автор топика Ответить на это сообщение Показать ответ Ссылка
Ответ на: комментарий от saufesma 04.11.23 22:42:19 MSK По алгоритму они не бывают nilбывают Bad_ptr ★★★★★ (04.11.23 22:46:25 MSK) Ответить на это сообщение Показать ответ Ссылка
Ответ на: комментарий от Bad_ptr 04.11.23 22:46:25 MSK Переделал ;(setq lst1 '(1 4 2 3)) ;;(setq lst2 '(1 2 5 3)) (setq *count* 0) (defun find-position (l1 l2 count) (if (eq (car l1) nil) nil (if (eq (car l1) (car l2)) (find-position (cdr l1) (cdr l2) (1+ count)) count)) (find-position list-A list-B *count*) неожиданно интересно saufesma ★ (04.11.23 22:50:35 MSK) автор топика Ответить на это сообщение Ссылка