-1
Я новичок в Common Lisp, пройдя через учебник и не могу обернуть мою голову вокругравные и обратные функции в Лиспе
(equal '(reverse (a b)) '(b a)))
возвращает NIL.
Очень ценю вашу помощь.
М.
Я новичок в Common Lisp, пройдя через учебник и не могу обернуть мою голову вокругравные и обратные функции в Лиспе
(equal '(reverse (a b)) '(b a)))
возвращает NIL.
Очень ценю вашу помощь.
М.
Цитирование в шепелявостью предотвращает оценку S-ехр и передает его вокруг как функцию.
Таким образом, вы сравниваете не-оценивали функцию '(обратный (аb)) к списку' (аb)
Если вы изменили код
(equal (reverse '(a b)) '(b a))
(реверс «(ab)) будет давать '(ba), и, таким образом, равное сравнение вернет истину.
Я бы сказал «цитируемый список», а не «неоценимую функцию». Единственное различие между '(reverse foo)' и '(a b)' заключается в том, что 'reverse' является именем символа в пакете COMMON-LISP, тогда как' a' является или не является) определяемой пользователем функцией. – Vatine