Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estudio Parcial
Estudio Parcial
-unifica, ya que las expresiones unifican porque hay coincidencias entre los
términos. Estas coincidencias permiten encontrar asignaciones de valores a las
variables que hacen que las expresiones sean idénticas,
-unifica
-no unifica ya que los terminos p(g(f(Y,Z) y p(g(X,B) no tienen una coincidencia para
poder unificarlos
2.
3.
Esta regla establece que X e Y son hermanos si comparten el mismo padre (P) y son
diferentes entre sí (X=Y).
este es un hecho que establece una relación entre un padre y una lista de
hijos. Por ejemplo, padre(pedro,[ana,juan,mauricio]). indica que Pedro
es el padre de Ana, Juan y Mauricio.
padreDe/2: Esta es una regla que se utiliza para definir la relación "padre de".
Toma dos argumentos, el padre y el hijo. Utiliza el predicado buscar/2, que
parece estar definido en otro lugar del programa, para buscar si el hijo dado
está en la lista de hijos del padre.
primerhijo/2: Esta es otra regla que toma un padre y un hijo como
argumentos. Devuelve el primer hijo de ese padre. Utiliza el patrón
[PrimerHijo|_] para descomponer la lista de hijos y obtener el primer
elemento.
La regla contar_hijos/2 cuenta la cantidad de hijos que tiene un padre. Para ello,
resto de la lista para obtener la longitud total de la lista original, que representa la
5.
Caso base inversa([], []).: Esta es la primera regla que Prolog buscará
cuando se llame al predicado inversa/2. Establece que si la lista de entrada
está vacía, la lista invertida también debe ser vacía. Es el caso base que
detiene la recursión cuando la lista se ha invertido por completo.
Regla recursiva inversa([X|L1], L2) :- inversa(L1, L3), append(L3,
[X], L2).: Esta regla se aplica cuando la lista de entrada [X|L1] no está
vacía. Funciona de la siguiente manera:
● Toma la lista [X|L1], donde X es el primer elemento de la lista y L1 es
la cola (el resto de la lista).
● Llama recursivamente al predicado inversa/2 con la cola L1, lo que
nos dará la lista invertida de la cola L3.
● Utiliza el predicado append para concatenar [X] al final de la lista
invertida L3, produciendo así la lista invertida final L2.
reverse(L, L) es una llamada a la función reverse, que toma una lista L y devuelve
su reverso, y luego verifica si este reverso es igual a L.