Cursosā€Ž > ā€ŽMartes-MiĆ©rcoles-Jueves MaƱanaā€Ž > ā€ŽCuatrimestres Anterioresā€Ž > ā€Ž

Clases Lógico y Funcional 2c2010


Clase 4

publicado a laā€Ž(s)ā€Ž 9 nov 2010 8:41 por gisela decuzzi Ā  [ actualizado el 9 nov 2010 8:44 por Nicolas Passerini]

Vimos
  • Tipos
  • Como definirlos
  • Repasamos orden superior
  • [Martes] Mandamos un tp que se entrega el miĆ©rcoles al inicio de la clase el enunciado para el que no se lo llevo esta adjunto a este post.

Funcional - Clase 3

publicado a laā€Ž(s)ā€Ž 3 nov 2010 12:18 por Guillermo Polito Ā  [ actualizado el 3 nov 2010 12:21 por Nicolas Passerini]

Vimos orden superior.Ā  De dos gustos:

  • Funciones que vienen en el haskell:
    • map
    • filter
    • all
    • any
    • foldl
  • Funciones de orden superior hechas por nosotros

TP para el miƩrcoles 10 de noviembre:

parcial de batman


Funcional Clase 2

publicado a laā€Ž(s)ā€Ž 15 oct 2010 7:26 por Mariana Matos Ā  [ actualizado el 22 oct 2010 9:32 por Nicolas Passerini]

Hoy vimos:
  • Guardas
  • Aplicación Parcial
Estuvimos haciendo el ejercicio en el laboratorio.

Funcional Clase 1

publicado a laā€Ž(s)ā€Ž 14 oct 2010 11:43 por Guillermo Polito Ā  [ actualizado el 14 oct 2010 12:04 por Nicolas Passerini]

QuƩ vimos hoy:
  • Concepto de Funcion.Ā  función como reemplazo
  • Expresiones lambda
  • Tuplas
  • Listas

Tp para la próxima clase:

Traer impreso, hecho en mÔquina (no word) las siguientes funciones, definiéndolas en la mayor cantidad de formas posibles y acordÔndose de utilizar composición cuando sea posible:

1) cantidadDeTemas/1. Que recibe un disco y retorna la cantidad de temas del disco.Ā  Un disco es una tupla formada por:Ā  ("nombre del disco", [ tema1, tema2 ]).
Ej:

> cantidadDeTemas ("naturalezaSangre", ["naturalezaSangre", "bello abril"])
2

2) discoCareta/1.  Recibe un disco (igual que el anterior), y retorna si es careta o no (un booleano).  Un disco es careta si la primera canción del disco es igual al nombre del disco.

> discoCareta ("naturalezaSangre", ["naturalezaSangre", "bello abril"])
True

> discoCareta ("alta suciedad", ["paloma", "alta suciedad", "media veronica"])
false

3) yaEstamosCansadosDe/1.  Recibe un disco, y nos dice si la primer cancion del disco tiene mÔs de 6 caracteres.  Tener en cuenta que la función length/1 sirve para strings:
Ej:

> length "hola"
4

> yaEstamosCansadosDe ("alta suciedad", ["paloma", "alta suciedad", "media veronica"])
False

> yaEstamosCansadosDe ("naturalezaSangre", ["naturalezaSangre", "bello abril"])
True

ĀæDe donde seguimos leyendo?

Composición
Cuando usar parentesis

Clase 6 - 22/9 - Recursividad y pattern matching

publicado a laā€Ž(s)ā€Ž 22 sept 2010 18:11 por Guillermo Polito Ā  [ actualizado el 22 sept 2010 18:19 por Nicolas Passerini]

QuƩ vimos hoy:
  • Recursividad
  • Recursividad con listas y patrones de listas
  • Pattern matching Level up

Tp para la próxima clase:

Amigos - 11/10/2007

ĀæDe donde seguimos leyendo?

Unificación y pattern matching


Clase 15/9 - Individuos compuestos

publicado a laā€Ž(s)ā€Ž 15 sept 2010 19:25 por Guillermo Polito Ā  [ actualizado el 16 sept 2010 7:10 por Nicolas Passerini]


QuƩ vimos hoy:

  • Repaso forall
  • Pattern matching y unificación
  • IndivĆ­duos compuestos:
    • Functores
    • Listas
En detalle:

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 hacer
https://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?

Clase 4 - 8/9 - Negación y Forall

publicado a laā€Ž(s)ā€Ž 8 sept 2010 13:20 por Nicolas Passerini Ā  [ actualizado el 8 sept 2010 13:23]

QuƩ vimos hoy:

  • Negación
  • Inversibilidad
  • Generación
  • Para todo (forall)

Tarea para la próxima clase:

https://sites.google.com/site/paradigmasdeprogramacion/material/guas-de-ejercicios/teg-sin-listas

AdemƔs, para la entrega tienen que respetar el siguiente formato:

https://sites.google.com/site/paradigmasdeprogramacion/material/guas-de-ejercicios/formato-de-entrega

DesafĆ­o:

  • Hacer el predicado paraTodo, que funcione igual que el forall, obviamente sin usar el forall.

Clase 3 - 1/9 - Aritmética, negación, inversibilidad

publicado a laā€Ž(s)ā€Ž 8 sept 2010 13:19 por Nicolas Passerini Ā  [ actualizado el 8 sept 2010 13:20]

A grandes rasgos vimos:

  • Inversibilidad
  • AritemĆ©tica y problemas de inversibilidad
  • Introducción a la negación
  • TP obligatorio presencial: ĀæQuiĆ©n mató a TĆ­a Agatha? (Ejercicio 3 de la guĆ­a 2 de lógico)

ĀæDe donde seguir leyendo?


Clase 2 - 24/8 - Paradigma Lógico

publicado a laā€Ž(s)ā€Ž 8 sept 2010 13:16 por Nicolas Passerini Ā  [ actualizado el 8 sept 2010 13:19]

En resumen hoy vimos:

  • ĀæQuĆ© es la lógica?
  • Lógica proposicional vs Lógica de predicados
  • Buenos y Malos razonamientos
  • Conectores lógicos
  • Introducción a Prolog
  • TerminologĆ­a

Tarea para la próxima clase:

TP1Hacer los siguientes predicados (utilizando como guĆ­a a tu propia familia)
  • padre/2 (el Ćŗnico definido a travĆ©s de hechos, todos los otros tienen que estar definidos a travĆ©s de reglas)
  • hermano/2
  • abuelo/2
  • tio/2
  • primo/2
    El TP1 se resuelve con SWI-Prolog en sus casas y se entrega impresa la resolución el miércoles 01/09 al inicio de la clase

TambiƩn pueden revisar el material del cuatrimestre pasado para mas links haciendo click aca.


Clase 1 - 17/8 - Presentación

publicado a laā€Ž(s)ā€Ž 8 sept 2010 13:15 por Nicolas Passerini Ā  [ actualizado el 8 sept 2010 13:16]

QuƩ se vio en clase

  • Cuestiones administrativas
  • Presentación de la materia
  • Introducción a paradigmas (programa, paradigma, variable ...)

Material de Lectura