Clase 10/03/2014.

Comisión 1 (Docente: Pedro Sánchez Terraf)

Laboratorio

Descargamos los archivos del Práctico 1 y la Introducción a Linux de mi página web.

Sobre el uso de la computadora:

  1. Inicio de sesión (nombre de usuario y clave)

  2. Terminal y comando básicos (ls, cd)

  3. Completación con tecla Tab y búsqueda de historia con las flechas del cursor (arriba y abajo).

Sobre el intérprete de Haskell GHCI:

  1. Usarlo como una calculadora (¡de precisión arbitraria!)

  2. Ejemplos de expresiones: numéricas (Num), Booleanas (Bool), Palabras (String), Listas.

  3. Breve explicación para leer descripción del tipo de las funciones (que “comen” y qué devuelven).

  4. Como hacer definiciones en ghci:
    let profes = [“Pedro”,”Mariana”,”Eze”]
    let rapp xs x = xs ++ [x]

  5. Errores en ghci:

    Prelude> not 4 + 6 == 10

    <interactive>:1:13:
    No instance for (Num Bool)
    arising from a use of `+' at <interactive>:1:7-15

    Possible fix: add an instance declaration for (Num Bool)

    In the first argument of `(==)', namely `not 4 + 6'

    In the expression: not 4 + 6 == 10

    In the definition of `it': it = not 4 + 6 == 10

    El problema aparece en la parte resaltada.

  6. Ejercicio: Descubrir usando ghci qué hace cada una de las funciones listadas al final de Práctico 1. (Por escrito)



Aula

Preguntas para pensar: ¿Para qué estudio computación? ¿Qué relación tiene la “computación” con la computadora? Palabras que surgen: “Programar”, “juego”, “instrucciones”..., “programa.

Discutimos las 4 orientaciones de la Computación:

Ejemplo histórico sobre un sistema crítico: Therac-25 (en español).

Simplificación Práctica:Una computadora con un programa toma datos y devuelve un resultado”.

Entonces, suponemos por ahora que un programa es una función.




Funciones

Como crear programas funcionales

Los temas de este cuatrimestre:




Lógica

Como demostrar propiedades de nuestros programas



Ejercicio: Plantear un problema que se solucione usando una función.

Ejemplo: Dada una lista de alumnos con sus promedios, decir cuál es el alumno con mayor promedio



[(“Pedro”,5), (“Juan”,8)] ---> ---> “Juan”

Vimos una lista de algunos tipos de expresiones que podían ser usadas como argumentos y como el resultado de la función (tipos lista, tipos par, terna, etc).

Aprendimos con nuestros ejemplos:

  1. Los elementos de una lista siempre son del mismo tipo.

  2. Los tipos de los argumentos y del resultado de una función están fijos.