Está en la página 1de 2

Inteligencia Artificial

MATERIA: INTELIGENCIA ARTIFICIAL


SEMANA 7

TEMAS SEMANA 7:
a) Algunos procedimientos interconstruidos en el lenguaje.
b) Determinación del tipo de un término.
c) Construcción y descomposición de términos.
d) Procedimientos para la manipulación de base de datos.
e) Los procedimientos bagof, setof y findall.

 ¿Cómo se realiza el procedimiento interconstruidos en los


leguajes aplicativos?
Los lenguajes aplicativos el procedimiento interconstruidos se lleva acabo
mediante el uso de las funciones puras con composición funcional, recursión y
expresiones condicionales.

Tienen 4 componentes:

Un conjunto de funciones primitivas.


Un conjunto de formas funcionales.
La operación de aplicación.
Un conjunto de objetos de datos.

Ejemplos: LISP.

; Factorial

(defun fact (n)


(if (= n 1) ; caso de terminación -> 1! = 1
1
(* n (fact (- n 1))) ; relación recursiva: n! = n * (n-1)!
)
)

 ¿Cuántos predicados predefinidos existen para la construcción y


descomposición de términos?

Existen tres predicados para construir nuevos terminos o descomposición de


términos los cuales son:
Inteligencia Artificial

Term =.. L
functor(Term, F, N)

arg(N, Term, A)

Ejemplo:

?- f(a,b) =.. L.
L = [f, a, b]

?- T =.. [progenitor, miguel, maría ]


T = progenitor(miguel, maría)

?- Z =.. [p, X, g(X,Y) ].


Z = p(X, g(X,Y))

 ¿Cuáles son y cómo funcionan los predicados para la


manipulación de la base de datos?
La siguiente tabla mostrara los predicadores y sus funciones.

Predicados Descrición de función


asserta(x) Añade la cláusula X como la primera cláusula de este
predicado.
assertz(x) Añade la cláusula X como la última cláusula del
predicado.
retract(x) Borra la cláusula X de la base de datos.
retract/assert Modificar la base de datos de cláusulas.
recorda/erase Permiten grabar/borrar una base de datos de términos.

 ¿Cuál es el modo de uso del procedimiento de findall?


El modo de uso de findadll se da mediante la generación de una lista con todas
las soluciones del predicado dado según el orden en que se van sucediendo.
Findall nunca falla, si no hay soluciones genera una lista vacía.

Ejemplo:

findall(+Termino_o_variable, +Objetivo, -ListaResultado).

También podría gustarte