una rotar listing lista examples example declarar list types prolog

rotar - prolog listing example



¿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?


Prolog define un grupo de predicados incorporados para fines de prueba de tipo: var/1 , atom/1 , integer/1 , float/1 , atomic/1 , compound/1 , nonvar/1 , number/1 , todos ellos con un significado completamente autoexplicativo 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).


Puedes probar este código:

isList([_|_]). isList([]).

Espero eso ayude.


Para verificar la lista, puede probar:

listing(is_list/1, list_functor/1). is_list(X) :- functor(X, F, _), list_functor(F). list_functor(''.''). list_functor(''[]'').


Para verificar si una variable está vinculada a una lista, puede usar is_list/1 .