introalg:taller1
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| introalg:taller1 [2006/05/01 19:00] – nicolasw | introalg:taller1 [2025/11/15 13:47] (actual) – editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 4: | Línea 4: | ||
| * Introducción al uso de Hugs | * Introducción al uso de Hugs | ||
| - | * Como escribir programas Haskell | + | * Cómo escribir programas Haskell |
| * Escribiendo los primeros programas | * Escribiendo los primeros programas | ||
| Línea 11: | Línea 11: | ||
| [[http:// | [[http:// | ||
| - | Durante este taller | + | Durante este taller |
| A Hugs se lo invoca desde la //línea de comandos// o picando sobre el ícono en nuestro entorno gráfico. | A Hugs se lo invoca desde la //línea de comandos// o picando sobre el ícono en nuestro entorno gráfico. | ||
| - | Una vez que el intérprete | + | Una vez que el intérprete |
| [nicolasw@azul Taller]$ hugs | [nicolasw@azul Taller]$ hugs | ||
| Línea 29: | Línea 29: | ||
| Hugs.Base> | Hugs.Base> | ||
| - | En este modo Hugs se convierte en una calculadora esperando que se introduzca una expresión para luego evaluarla y volver a pedir una expresión (lazo **leer-evaluar-imprimir**). | + | De este modo Hugs se convierte en una calculadora, esperando que se introduzca una expresión para evaluarla |
| Gracias al //preludio standard// tenemos muchas funciones ya definidas. | Gracias al //preludio standard// tenemos muchas funciones ya definidas. | ||
| Línea 41: | Línea 41: | ||
| "daba le arroz al a zorra elabad" | "daba le arroz al a zorra elabad" | ||
| - | Este ciclo continua | + | Este ciclo continúa |
| Hugs.Base> | Hugs.Base> | ||
| Línea 47: | Línea 47: | ||
| [nicolasw@azul Taller]$ | [nicolasw@azul Taller]$ | ||
| - | Para poder dar nuevas definiciones y/o funciones necesitamos escribir un //programa funcional// o //script// Haskell. | ||
| - | Un programa funcional es un [[http:// | ||
| - | A manera de ejemplo realicemos un ciclo de creación-carga-prueba-modificacion-recarga, con el Ejercicio 8.3 del apunte [[http:// | + | |
| + | Para poder dar nuevas definiciones y/o funciones necesitamos escribir un //programa funcional// o //script// Haskell. \\ | ||
| + | Un programa funcional es un [[http:// | ||
| + | |||
| + | A manera de ejemplo realicemos un ciclo de **creación-carga-prueba-modificación-recarga**, con el Ejercicio 8.3 del apunte [[http:// | ||
| Para crear un //script// basta con invocar el comando para editar un (nuevo) archivo '': | Para crear un //script// basta con invocar el comando para editar un (nuevo) archivo '': | ||
| Línea 60: | Línea 62: | ||
| | x=0 = 0 | | x=0 = 0 | ||
| - | Luego de salvar el programa y cargarlo, el intérprete indica un error pues '' | + | Luego de salvar el programa y cargarlo, el intérprete indica un error pues '' |
| Hugs.Base> | Hugs.Base> | ||
| - | Hugs.Base> | ||
| Hugs.Base> | Hugs.Base> | ||
| ERROR " | ERROR " | ||
| Línea 69: | Línea 70: | ||
| Las traducciones son más o menos directas, de todas formas preparamos una tabla de [[http:// | Las traducciones son más o menos directas, de todas formas preparamos una tabla de [[http:// | ||
| - | Volvemos a editar el script con '': | + | Volvemos a editar el script con '': |
| Podemos probar la nueva función para ganar confianza en su **corrección**. | Podemos probar la nueva función para ganar confianza en su **corrección**. | ||
| Línea 129: | Línea 130: | ||
| | n `mod` 4 == 0 = n `mod` 100 /= 0 || n `mod` 400 == 0 | | n `mod` 4 == 0 = n `mod` 100 /= 0 || n `mod` 400 == 0 | ||
| - | **El que hizo [[http:// | + | **El que cursó |
| bisiesto :: Int -> Bool | bisiesto :: Int -> Bool | ||
| Línea 143: | Línea 144: | ||
| [1948, | [1948, | ||
| - | Podemos comprobar | + | Vemos que las tres funciones operan correctamente en el rango de números dados ((No queremos |
| ===== Ejercicios ===== | ===== Ejercicios ===== | ||
| Línea 155: | Línea 156: | ||
| la siguiente definición del área del prisma: \\ | la siguiente definición del área del prisma: \\ | ||
| // | // | ||
| - | //|[ | + | //|[ |
| donde //frente//, //lado// y //arriba// son las caras frontal, lateral y superior del prisma respectivamente. | donde //frente//, //lado// y //arriba// son las caras frontal, lateral y superior del prisma respectivamente. | ||
| - | |||
introalg/taller1.1146520827.txt.gz · Última modificación: (editor externo)
