2009-06-04 12 views
5

Berkeley's "CS 61A Wykład 8: UI Rekurencja i Iteracja III" mówi, że null? sprawdza, czy lista jest pusta i pusta? sprawdza, czy lista jest pusta, czy słowo jest puste? Wykładowca również mówi (pusty? Pusty) zwróci fałsz. Ale DrScheme w ogóle nie myśli.Różnica między wartością zerową? i pusty? na Schemacie

Jaka jest różnica między wartością zerową? i pusty? w Scheme?

Odpowiedz

6

Bez różnicy (w moim ulubionym dialekcie - empty? nie jest w standardzie i jest za długi, ponieważ użyłem innego dialektu;) ...! Cytowanie PLT scheme docs:

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

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

i

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

The same as (null? v). 
+0

jest pusty zdefiniowana tylko w PLTScheme? – unj2

+0

To nie jest w standardowym, AFAIK, i to było zbyt długo, ponieważ użyłem innego dialektu - lepiej edytuj odpowiedź na wskazówkę! -) –

+0

jaki jest twój ulubiony dialekt? – unj2

4

Ani R5RS ani R6RS definiujący empty? jako orzecznik, a obie określają null? następująco:

Returns #t jeśli obj jest pusty lista, w przeciwnym razie zwraca #f.

0

pusty? jest specyficzny dla Planu PLT; jest taki sam jak zerowy ?.

1

można (określić pusty? NULL?) (zdefiniuj pusty „())

Powiązane problemy