Список обозначений и S-выражений в LISP - PullRequest
0 голосов
/ 02 февраля 2019

Я пытался выучить концепцию S-expressions в Lisp.Я столкнулся со следующим вопросом:

Приведите пример S-expression, который не может быть представлен в виде списка.

Что означает list notation?Я понимаю великую идею sexps, но возможно ли создать sexp, который не может быть представлен с использованием нотации списка?Если так, что я могу сказать о двоичном дереве, которое его представляет?

1 Ответ

0 голосов
/ 02 февраля 2019

В этом контексте я бы понял обозначение списка как аббревиатуру обозначения с точечной парой в случае линейной цепочки: обозначение списка (a b c) для обозначения с точкамипара обозначений (a . (b . (c . nil))).

Это будет означать, что все, что не выражается в виде вложенных списков, будет соответствовать описанию: неправильные списки (т. е. последние cdr не nil) или циклические списки приходят на ум.

Пример неправильного списка: (a b c . d).Самый правый лист не является nil.

Круговой список: #1=(a b c . #1#).На графике есть цикл.

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