Me estoy enseñando a mí mismo LISP con texto en línea de Estructura e Interpretación de Programas de Computadora, pero difiere en pequeños detalles con el programa Racket que estoy ejecutando para aprender LISP. Por ejemplo, SICP dice que el elemento de terminación de cualquier lista es 'nil', pero Racket no admite 'nil'. ¿Cómo creo una lista vacía en Racket para poder probar mis propios procedimientos?Creando una lista vacía en Racket
Respuesta
La lista vacía se denota '()
. Para que pueda crear una lista como
(cons 1 (cons 2 (cons 3 '())))
Esto produce la lista
'(1 2 3)
respuesta de Sean es correcta. Sin embargo, si desea poder escribir nil
, entonces eso también es fácil. Sólo tiene que ejecutar esto una vez al inicio de la sesión:
(define nil '())
En Raqueta la lista vacía se designa como sea:
'()
o como:
null
I diría que null
es probablemente el más idiomático de los dos, y encaja consistentemente con el predicado null?
, que prueba la lista vacía.
Ver el docs.
Prefiero usar ''()' sobre 'null'. Dos razones: 1. ''()' es un datum literal, no un identificador como 'null'. Eso significa que usted sabe el contenido de ''()', a diferencia de 'nulo' que puede ser rebotado:' (let ((null #f)) null) '. 2. ''()' funciona en todas las implementaciones de Scheme. 'null' solo funciona en implementaciones (como Racket) que lo definen. –
- 1. Particionando una lista en Racket
- 2. cuadro de lista para una lista vacía
- 3. Tratando con una lista vacía en mustache.js
- 4. creando una lista por defecto en python
- 5. ¿Scheme/Racket tiene una operación de enumeración?
- 6. protobuf-net: serializar una lista vacía
- 7. ¿Cómo deserializar una matriz/lista vacía?
- 8. HttpServletRequest # getParts() devuelve una lista vacía
- 9. mcons en dr racket
- 10. Python creando una lista con itertools.product?
- 11. Creando una lista con> 255 elementos
- 12. Creando una lista desordenada con controles asp.net?
- 13. ¿Creando una lista separada por comas?
- 14. añadir a la lista vacía
- 15. Lista de selección vacía en ASP.NET MVC
- 16. lista a menos vacía en Python
- 17. ¿Cómo comprobar si una lista está vacía en Python?
- 18. ¿Cómo ejecutar Racket en Emacs?
- 19. F restricción # valor en lista vacía
- 20. Creando una lista con enlaces circulares en C#?
- 21. ¿Alguien usa Racket comercialmente?
- 22. ¿Cómo inicializar la lista vacía?
- 23. creando lista de objetos en Javascript
- 24. multiplicación de lista vacía en emacs lisp
- 25. Racket URL dispatch
- 26. Racket REPL sobre TCP
- 27. Creando una lista de meses iterando entre dos fechas en una lista (Python)
- 28. Comprobando si una lista está vacía con LINQ
- 29. Obtener lista de nombres de columna de una tabla vacía
- 30. Python: ¿Cómo comprobar si una lista anidada está esencialmente vacía?
Gracias. Por supuesto, si lo hubiera pensado, esa solución es obvia. Gracias de nuevo, David – Davrand
También hay 'nulo' y/o 'vacío', dependiendo del idioma de raqueta que estés usando. –