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 22:00] – nicolasw | introalg:taller1 [2018/08/10 03:03] (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: 2018/08/10 03:03 (editor externo)