Создание пустого списка в Racket - PullRequest
5 голосов
/ 23 декабря 2010

Я учу себя LISP онлайн-тексту структуры и интерпретации компьютерных программ, но он отличается небольшими деталями от программы Racket, на которой я учусь LISP. Например, SICP говорит, что завершающим элементом любого списка является 'nil', но Racket не поддерживает 'nil'. Как создать пустой список в Racket, чтобы я мог проверить свои собственные процедуры?

Ответы [ 3 ]

13 голосов
/ 23 декабря 2010

Пустой список обозначен '().Таким образом, вы можете создать список как

(cons 1 (cons 2 (cons 3 '())))

. Это создаст список

'(1 2 3)
7 голосов
/ 24 декабря 2010

Ответ Шона правильный. Однако, если вы хотите набрать nil, это тоже просто. Просто запустите это один раз в начале вашей сессии:

(define nil '())
3 голосов
/ 14 декабря 2014

В Racket пустой список обозначается как:

'()

или как:

null

Я бы сказал, что null, вероятно, более идиоматичен из двух, и он согласуется с предикатом null?, который проверяет пустой список.

См. документы .

...