Cursadas anteriores > Cursada 2017 >
Bitácora
Clase 5 - Lógico - Parcial
Hicimos este parcial: https://docs.google.com/document/d/1zdqS7Ze6Uia0Hade1_oucxjrdqSkAFWHUN8fmvP9RnA/edit?usp=sharing ¡Suerte a todos! |
Clase 4 - Lógico - Simulacro
Trabajamos con este parcial de Programadores: https://docs.google.com/document/d/1UNjdADkjdKSnz35oh7yGyZpY9VHeZuhASO6-_RBPQF4/edit# También les recomendamos leer el Módulo 6 que explica cosas a tener en cuenta para la resolución de un ejercicio de lógico! Dejamos una solución hecha en clase (gracias Marina!) |
Clase 3 - Lógico - forall + Functores
En esta clase aprendimos un nuevo cuantificador: para todo. Es un predicado de orden superior llamado forall/2. Luego vimos una nueva clase de individuos: los Functores.
Esto se explica los apuntes: |
Clase 2 - Lógico - Inversibilidad, negación y aritmética
Luego de repasar los conceptos básicos del paradigma lógico vistos la clase anterior con el ejemplo del árbol genealógico de Los Simpsons (podrán encontrar el archivo acá abajo). Estuvimos viendo:
Luego comenzamos la guía de aritmética en Mumuki, sobre todo el ejercicio 7 que explica el uso del is/2. La teoría se encuentra en los apuntes:
Queda como práctica en Mumuki: También ya se encuentra publicado la primera parte del TP de lógico: Carrera universitaria. Tiene fecha de entrega el Viernes 12/5 por mail a su tutor. |
Clase 1 - Lógico - Conceptos básicos
¡Dejamos atrás el paradigma funcional para adentrarnos en una nueva aventura dentro del paradigma lógico! La programación lógica es una programación declarativa en la cual a partir de las verdades declaradas nos permite inferir otras verdades que se desprenden de ella.
Después estuvimos aplicando los conceptos teóricos con la práctica de Mumuki usando el lenguaje SWI Prolog. El cual todos deberían tener instalado para la clase que viene. Básicamente vimos |
Clase 7 - Funcional - Parcial + Bonus
Tomamos el parcial de Filósofos: https://docs.google.com/document/d/18O4iy54v1XFCXB7QxbZnJzaFMezKO5bST86GiVny_wc/edit?usp=sharing Suerte! BONUS Algo que nos pendiente en la cursada era ver cómo declarar nuestros propios Typeclasses. Como funcional ya termina no quería dejar de aunque sea pasarles un código de ejemplo. Así que les dejo un archivo dónde se juega con Typeclasses y tiene comentarios sobre qué se está haciendo. |
Clase 6 - Funcional - Evaluación diferida y Simulacro
Y llegamos a la última clase del paradigma funcional! En esta clase vimos qué estrategia tiene Haskell para reducir una expresión: evaluación diferida (lazy evaluation). Esta capacidad de evaluando las expresiones a medida que lo necesita nos da la capacidad de trabajar con listas potencialmente infinitas siempre y cuando la operación converja a un valor. Luego de terminar todos los temas nos pusimos a resolver el simulacro de Expertos en Maquinitas. Dejo el código que hicimos en clase que no llegamos a terminar. |
Clase 5 - Funcional - TP y sus TADs
en esta clase estuvimos comparando varias soluciones a la primera parte del TP, y analizándolo en función de sus TADs. Aprendimos que un TAD (Tipo Abstracto de Datos) es un tipo de dato como los veníamos definiendo. Pero pusimos el foco en separar aquellas operaciones primitivas (que conocen cómo está implementado el TAD) de las que no (ya que se basan en las primitivas para obtener lo que necesiten). De esta forma tenemos un criterio para determinar qué funciones queremos que sean primitivas y cuáles no. Luego estuvimos definiendo los tipos de todas las abstracciones del negocio. Varios de ellos terminaron siendo funciones, otros datas. Para el caso de las funciones, es importante pensar en cómo construirlas para que los tipos cierren. La construcción de nuestros TADs también es algo importante que, en el caso de los datas es simplemente invocando al constructor con los parámetros esperados, pero en el caso de las funciones tenemos que ordenar bien los parámetros para armar los tipos que queremos. También recordamos qué significaba que un elemento sea Neutro o Absorbente en una operación. Vimos que la identificación de un elemento neutro puede servir para armar los otros elementos teniendo funciones que se encarguen de algún atributo del TAD. Por último estuvimos flasheando con la definición de Monoide. Vimos que las hierbas representan un monoide bajo la operación de mazclar, teniendo la alcachofa 0 como neutro. Además, como es conmutativa, entra dentro del grupo abeliano. Como nos ocupó toda la clase, quedó el último tema pendiente para la clase que viene! En la cual también vamos a estar trabajando sobre este enunciado que tienen que traer resuelto. |
Clase 4 - Funcional - Typeclass y Currificación
Comenzamos viendo los últimos temas teóricos que teníamos pendientes:
Esto temas están explicados en: En la segunda mitad de la clase hicimos este ejercicio entre todos. Quedó como tarea terminarlo. Se adjunta el código hecho en clase. Sugerimos hacer las siguientes guías de Mumuki:
Ya está liberada la segunda parte del TP, pueden encontrarla en la sección de TPs. |
1-10 of 13