Почему здесь emacs не то же самое, что и emacs? - PullRequest
0 голосов
/ 10 июля 2020

Этот первый должен вернуть t, но не делает этого, а другой возвращает t. Они должны быть одинаковыми.

(defvar list '((binds . 'emacs)))
(eq (cdr (assoc 'binds list)) 'emacs) ;; returns nil
(eq 'emacs 'emacs) ;; returns t
(type-of 'emacs) ;; returns symbol
(type-of (cdr (assoc 'binds list))) ;; Returns cons

Что здесь происходит?

1 Ответ

2 голосов
/ 10 июля 2020

Потому что

(equal (cdr (assoc 'binds list)) ;; (quote emacs)
       (quote (quote emacs))

, т.е. часть cdr возвращает 'emacs, а 'emacs возвращает только сам символ без кавычек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...