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




1-10 of 10