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:
Inicio de sesión (nombre de usuario y clave)
Terminal y comando básicos (ls, cd)
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:
Usarlo como una calculadora (¡de precisión arbitraria!)
Ejemplos de expresiones: numéricas (Num), Booleanas (Bool), Palabras (String), Listas.
Breve explicación para leer descripción del tipo de las funciones (que “comen” y qué devuelven).
Como
hacer definiciones en ghci:
let
profes = [“Pedro”,”Mariana”,”Eze”]
let rapp xs x = xs
++ [x]
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.
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:
Ingeniería en Sistemas
Ingeniería del Software
Ingeniería en Computación
Ciencias 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:
Los elementos de una lista siempre son del mismo tipo.
Los tipos de los argumentos y del resultado de una función están fijos.