En Common Lisp, si quería comprobar si una lista no era nula, simplemente podría usar la lista como condición, ya que todas las listas que no sean nulas se consideran verdaderas. Sin embargo, me parece que en Scheme, hacer lo mismo hará que Scheme piense que estoy tratando de llamar a una función. ¿Hay una mejor manera de comprobar si una lista es nula en Scheme que definir otra función que no sea (not (null? x))
?¿La mejor manera de verificar si una lista no es nula?
6
A
Respuesta
7
En Scheme, todo lo que no es #f
es cierto, por lo que '()
se considera en if
declaraciones.
Por lo tanto,
(if '() "true" "false") => "true"
(not '()) => #f
Usando (not (null? x))
es la forma más sencilla de comprobar si una lista no es nulo: describe exactamente lo que quiere, y en casos extremos donde se le den algo que no es una lista , le dará un comportamiento diferente:
(if (not (null? #t)) "true" "false") => "true"
(if (not #t) "true" "false") => "false"
4
Si sabes que es una lista, puedes usar (pair? x)
, ya que cada lista es un par o '()
.
Cuestiones relacionadas
- 1. ¿La mejor manera de verificar si una variable es nula?
- 2. ¿Mejor manera de verificar si hay elementos en la lista?
- 3. ¿Cuál es la mejor manera de verificar si la opción actualmente seleccionada en una lista desplegable es la última?
- 4. ¿La mejor manera de verificar si una lista desplegable contiene un valor?
- 5. ¿Cómo puedo verificar si una matriz es nula/vacía?
- 6. ¿cuál es la mejor manera de verificar una matriz vacía?
- 7. Verificar si algo es una lista
- 8. ¿Cuál es la mejor manera de determinar si una variable de sesión es nula o está vacía en C#?
- 9. ¿Cuál es la mejor manera de verificar si una cadena contiene una URL en Java/Android?
- 10. ¿Cuál es la mejor manera de verificar si la vista es visible en la ventana?
- 11. ¿Cuál es una mejor manera de verificar si una cadena es un número entero en iPhone?
- 12. ¿La mejor manera de verificar la excepción interna?
- 13. ¿Cuál es la mejor manera de verificar si existe una URL en PHP?
- 14. ¿Cuál es la forma más confiable de verificar si una variable de JavaScript es nula?
- 15. ¿La mejor manera de verificar si existe un objeto PowerShell?
- 16. Compruebe si alguna columna NO ES NULA
- 17. C# en VS2005: ¿cuál es la mejor manera de verificar si una cadena está vacía?
- 18. Python es la mejor manera de verificar si existe una clave
- 19. ¿Cuál es la mejor manera de verificar si una cadena existe en otra?
- 20. Entonces, ¿cuál es la mejor manera de verificar si existe una fila? EXISTS, COUNT o num_rows?
- 21. ¿Cuál es la mejor manera de verificar si un objeto es una matriz o no en Javascript?
- 22. ¿Alguna manera de verificar si una XmlSchemaParticle es una EmptyParticle?
- 23. Cómo verificar si una tabla de datos es nula o no tiene nada
- 24. ¿Hay alguna manera rápida de verificar si CUALQUIER columna es NULA?
- 25. ¿Cuál es la mejor manera de copiar una lista?
- 26. ¿Cuál es la mejor manera de verificar si hay fugas de memoria en C++?
- 27. ¿Cuál es la mejor manera de verificar si el usuario puede cargar archivos?
- 28. ¿cuál es la mejor manera de verificar si existe un objeto S3?
- 29. Manera pitónica de verificar si una condición se cumple para cualquier elemento de una lista
- 30. ¿Cuál es la mejor manera de verificar si un archivo existe en C++? (plataforma cruzada)
¿Qué quiere decir con "hará que Scheme piense que estoy intentando llamar a una función"? – leppie
@leppie Scheme se queja si utilizo una lista (que se pasa como un parámetro de función) como un condicional. Busqué la queja en Google y aparentemente Scheme intenta llamar a la función con el nombre del primer elemento de la lista, y como esa función no existe, Scheme se queja – wrongusername
Parece que no está citando la lista, iow ' (1 2 3) 'vs' '(1 2 3) 'con lo último siendo correcto. las listas vacías también necesitan ser citadas, iow ''()'. – leppie