¿Hay alguna forma de determinar el tipo de elemento dentro de una lista en Prolog? Sé que las variables no están escritas explícitamente en Prolog, pero necesito verificar si un elemento es un número, un personaje específico, etc. ¿Cómo se puede lograr esto?Comprobación del tipo de Prolog
Respuesta
Prolog define un grupo de predicados incorporados para propósitos de prueba Tipo: var/1
, atom/1
, integer/1
, float/1
, atomic/1
, compound/1
, nonvar/1
, number/1
, todos con un significado bastante claro si conoces los tipos de datos del idioma. Para caracteres específicos, puede explotar la unificación con ese carácter, después de verificar que el elemento no sea una variable libre (de lo contrario, la unificación siempre es exitosa).
número/1
Incompleto, no responde "pero necesito verificar si un elemento es un número, un carácter específico, etc.". – Junuxx
Usted podría intentar este código:
isList([_|_]).
isList([]).
espero que ayude.
a la lista de verificación puede probar:
listing(is_list/1, list_functor/1).
is_list(X) :-
functor(X, F, _),
list_functor(F).
list_functor('.').
list_functor('[]').
Para comprobar si una variable está ligada a una lista, puede utilizar is_list/1
.
- 1. OCaml: Tipo Comprobación de objetos
- 2. Comprobación del tipo de un enlace en Sitecore
- 3. Mejor tipo comprobación de coincidencia en Scala
- 4. Comprobación para el tipo de control
- 5. Comprobación del azulejo de Scrabble
- 6. Comprobación de propiedad del modelo
- 7. JSR-303 Tipo Comprobación Antes Encuadernación
- 8. SVN: ¿historial de comprobación del usuario?
- 9. Error de tipo de inferencia/comprobación de tipo al utilizar cálculos de tipo de nivel
- 10. Implementación del algoritmo DPLL en Prolog
- 11. Comprobación del estado del mensaje GCM
- 12. Comparación Haskell vs. Prolog
- 13. ¿Deshabilitar la comprobación del script TSQL?
- 14. Patrones de diseño para la comprobación de tipo estático
- 15. Constantes Prolog
- 16. cURL Comprobación del tiempo de espera
- 17. Imponer comprobación de tipo fuerte en C (rigurosidad de tipo para typedefs)
- 18. Comprobación de la sizeof un tipo entero en el preprocesador
- 19. resultados únicos de prolog
- 20. Tablas hash en prolog
- 21. ¿Prolog es un lenguaje sin tipo? ¿Cuál es la diferencia entre Prolog y los lenguajes tipados dinámicamente?
- 22. ¿Cuáles son los usos del predicado de falla en Prolog?
- 23. Comprobación del lado del servidor frente al lado del agente
- 24. Integración de Prolog con C#
- 25. Ordenar cadenas en Prolog
- 26. Prolog Árbol genealógico
- 27. Inno Setup Comprobación del proceso en ejecución
- 28. Comprobación del último subprograma git commit
- 29. Ordenando una lista en Prolog
- 30. Causa del error de comprobación de rango (Delphi)
Para tipos más complejos que los primitivos, puede consultar el mecanismo de manejo de registros SWI_PROLOG (http://tinyurl.com/2gy53rr). Esto le permitirá expresar tipos compuestos con campos de acceso con nombre, y automáticamente generará todos los predicados de comprobación de tipo, dada una especificación de registro. ¡Muy útil! – sharky