QuƩ vimos hoy:
1) Hasta ahora habĆamos visto solo indivĆduos simples: Ć”tomos y nĆŗmeros.Ā Ahora agregamos: - functores: son indivĆduos compuestos que nos sirven para agrupar otros indivĆduos (compuestos o simples).Ā Tienen un nombre y una aridad.Ā Su tamaƱo es fijo. - listas: son indivĆduos compuestos que nos sirven para hacer operaciones sobre un conjunto en su totalidad (i.e. sumar todos los elementos, o saber la cantidad).Ā Su tamaƱo es variable, y no tienen nombre. 2) Hablamos un poquito de unificación y pattern matching. Unificación es el proceso mediante el cual dos elementos se consideran iguales.Ā Para verificar que dos elementos sean iguales, se lleva a cabo una verificación de patrones, o pattern matching, que dice si esos dos elementos calzan. - Todo indivĆduo matchea o calza con una variable sin ligar. - Los functores matchean con functores que tengan el mismo nombre y aridad, y que ademĆ”s matcheen sus componentes. 3) Predicados sobre listas - lenght/2 - sumlist/2 - member/2 AdemĆ”s vimos un nuevo predicado de orden superior: findall/3, que se usa de la siguiente manera: hijosDe(Alguien) :- findall( Hijo, padre(Alguien, Hijo), Hijos). Y se interpreta como: Encontra todos los Hijo que cumplan la condicion padre(Alguien,Hijo), y ligĆ” la variable Hijos con la lista con todos los resultados. TambiĆ©n notamos que tiene los mismos problemas de inversibilidad que el forall/2 o el not/1.Ā Ojo con eso! Tarea para la próxima clase:No hay :)ĀæCómo podemos practicar listas, functores y todas esas cosas?En las guias de ejercicios 3 y 4 van a encontrar ejercicios para hacerhttps://sites.google.com/site/paradigmasdeprogramacion/material/guas-de-ejercicios ó para practicar forall, not, functores y algo de aritmĆ©tica (nada de listas): Ejercicio de los ferreteros ĀæDe donde seguimos leyendo? |
Cursosā > āMartes-MiĆ©rcoles-Jueves MaƱanaā > āCuatrimestres Anterioresā > āClases Lógico y Funcional 2c2010ā > ā