2009-06-04 1 views
5

Berkeley's "CS 61A Vortrag 8: UI Rekursion und Iteration III" sagt, dass null? überprüft, ob die Liste leer und leer ist? überprüft, ob die Liste leer ist oder das Wort leer ist? Der Dozent fährt fort zu sagen (Null? Leer) wird falsch zurückgeben. Aber DrScheme macht überhaupt nichts aus.Unterschied zwischen null? und leer? in Schema

Was ist der Unterschied zwischen null? und leer? im Schema?

Antwort

6

Kein Unterschied (in meinem Lieblings-Dialekt - empty? ist nicht im Standard, und es ist zu lange her, dass ich einen anderen Dialekt verwendet habe;) ...! Zitiert PLT scheme docs:

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

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

und

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

The same as (null? v). 
+0

leer ist nur definiert in PLTScheme? – unj2

+0

Es ist nicht im Standard, AFAIK, und es ist viel zu lange her, dass ich einen anderen Dialekt benutzt habe - ich bearbeite die Antwort, um darauf hinzuweisen! -) –

+0

was ist dein Lieblingsdialekt? – unj2

4

Weder R5RS noch R6RS definiert empty? als Prädikat und definieren beide null? wie folgt:

Returns #t wenn obj die leer ist Liste, ansonsten #f.

0

leer? ist spezifisch für PLT-Schema; es ist das gleiche wie null ?.

1

Sie können (leer definieren? Null?) (definieren leer ‚())