2009-06-04 3 views
5

Беркли «CS 61A Lecture 8: UI Recursion and Iteration III» говорит, что null? проверяет, пуст ли пуст и пуст? проверяет, пустой ли список или слово пустое? Лектор также говорит, что (null? Empty) вернет false. Но DrScheme вообще не возражает.Разница между нулем? и пустой? в Схеме

В чем разница между нулем? и пустой? в Схеме?

ответ

6

Никакой разницы (в моем любимом диалекте - empty? нет в стандарте, и это слишком долго, так как я использовал любой другой диалект;) ...! Цитирование PLT scheme docs:

(null? v) → boolean? 
    v : any/c 

Returns #t if v is the empty list, #f otherwise. 

и

(empty? v) → boolean? 
    v : any/c 

The same as (null? v). 
+0

пусто определяется только в PLTScheme? – unj2

+0

Это не в стандарте, AFAIK, и это было слишком долго, так как я использовал какой-либо другой диалект - лучше отредактировать ответ, чтобы намекнуть на это!) –

+0

Что такое ваш любимый диалект? – unj2

4

Ни R5RS, ни R6RS не определяет empty? как предикат, и как определить null? следующим образом:

Возвращает #t если OBJ является пустой список, в противном случае возвращает #f.

0

пустой? относится к схеме PLT; это то же самое, что и null.

1

вы можете (определить пустой? Обнулить?) (определить пустой «())

Смежные вопросы