2009-06-04 5 views
5

Berkeley "CS 61A Conférence 8: UI Recursion et Itération III" dit que null? vérifie si la liste est vide et vide? vérifie si la liste est vide ou le mot est vide? Le conférencier poursuit en disant que (null? Vide) retournera false. Mais DrScheme ne dérange pas du tout.Différence entre null? et vide? dans le schéma

Quelle est la différence entre null? et vide? dans le régime?

Répondre

6

Aucune différence (dans mon dialecte préféré - empty? n'est pas dans la norme, et c'est trop long depuis que j'ai utilisé un dialecte différent;) ...! Citant PLT scheme docs:

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

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

et

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

The same as (null? v). 
+0

Est vide défini seulement dans PLTScheme? – unj2

+0

Ce n'est pas dans la norme, AFAIK, et il a été beaucoup trop longtemps depuis que j'ai utilisé un autre dialecte - je ferais mieux d'éditer la réponse pour faire allusion à cela! -) –

+0

quel est votre dialecte fav? – unj2

4

Ni r5rs ni R6RS définit empty? comme un prédicat, et les deux définissent null? comme suit:

Retours #t si obj est le vide liste, sinon renvoie #f.

0

vide? est spécifique au schéma PLT; c'est la même chose que null?

1

vous pouvez (définir vide? Null?) (définir vide «())

Questions connexes