algo1:2010-2:haskell-intro
Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
algo1:2010-2:haskell-intro [2010/08/16 03:15] – creado mpagano | algo1:2010-2:haskell-intro [2018/08/10 03:03] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | ==== Algunas herramientas para el laboratorio ==== | ||
+ | |||
+ | |||
En algunos de los proyectos necesitaremos consultar sobre la | En algunos de los proyectos necesitaremos consultar sobre la | ||
definición de algunas clases, o sobre la existencia de alguna función | definición de algunas clases, o sobre la existencia de alguna función | ||
Línea 14: | Línea 17: | ||
Para instalar GHCi en nuestra máquina podemos descargar la | Para instalar GHCi en nuestra máquina podemos descargar la | ||
- | [[http:// | + | [[http:// |
además del intérprete y del compilador contiene muchas librerías (una | además del intérprete y del compilador contiene muchas librerías (una | ||
librería-mal traducción para el término library- es un conjunto de | librería-mal traducción para el término library- es un conjunto de | ||
Línea 27: | Línea 30: | ||
nuestra distribución. | nuestra distribución. | ||
- | - Averiguar la definición de una clase: | + | == Usar el intérprete para averiguar cosas == |
- | Tanto en Hugs como en GHCi podemos | + | Tanto en Hugs como en GHCi podemos |
- | usamos para no mostrar la salida | + | y los tipos que forman parte de la misma : |
- | la misma es muy extensa): | + | |
< | < | ||
Hugs> :i Ord | Hugs> :i Ord | ||
... | ... | ||
</ | </ | ||
+ | Los puntos suspensivos los usamos para no mostrar la salida que obtenemos | ||
+ | de un comando cuando la misma es muy extensa. | ||
También podemos usar :i para conocer dónde está definida | También podemos usar :i para conocer dónde está definida | ||
Línea 44: | Línea 48: | ||
</ | </ | ||
- | - Averiguar | + | Para averiguar |
< | < | ||
Hugs> :t expresion | Hugs> :t expresion | ||
</ | </ | ||
- | 3. Cómo interpretar un error al cargar un archivo: | + | |
+ | == Cómo interpretar un error al cargar un archivo | ||
Supongamos que tenemos el archivo Min.hs | Supongamos que tenemos el archivo Min.hs | ||
- | user $ cat Min.hs | ||
<code haskell> | <code haskell> | ||
minimo :: [a] -> a | minimo :: [a] -> a | ||
Línea 57: | Línea 62: | ||
minimo (x:y:xs) = min x (minimo (y:xs)) | minimo (x:y:xs) = min x (minimo (y:xs)) | ||
</ | </ | ||
+ | |||
Y lo cargamos en Hugs | Y lo cargamos en Hugs | ||
< | < | ||
Línea 99: | Línea 105: | ||
restricción. | restricción. | ||
- | - Conocer qué hace una función: | + | == Conocer qué hace una función |
Para saber qué hace una función no tenemos un método desde Hugs | Para saber qué hace una función no tenemos un método desde Hugs | ||
Línea 106: | Línea 112: | ||
El reporte de Haskell es donde se define la sintaxis de los programas | El reporte de Haskell es donde se define la sintaxis de los programas | ||
- | Haskell y una semántica para los mismos (análogo al capítulo | + | Haskell y una semántica para los mismos (análogo al capítulo |
- | libro). En este reporte está definido el llamado preludio (Prelude) | + | computacional// |
- | que incluye algunas clases, tipos y funciones predefinidas. | + | preludio (Prelude) que incluye algunas clases, tipos y funciones predefinidas. |
Las clases y los tipos predefinidos de Haskell se encuentran | Las clases y los tipos predefinidos de Haskell se encuentran | ||
documentados en el [[ | documentados en el [[ | ||
- | http:// | + | http:// |
- | + | ||
- | En el | + | |
[[http:// | [[http:// | ||
capítulo 9]] del reporte está la definición completa del Prelude. | capítulo 9]] del reporte está la definición completa del Prelude. | ||
- | |||
También podemos consultar el contenido del Preludio usando la | También podemos consultar el contenido del Preludio usando la | ||
documentación del mismo en | documentación del mismo en | ||
[[http:// | [[http:// | ||
- | (que es un sitio donde se ncuentra | + | (que es un sitio donde se encuentra |
cosas, de muchas librerías de Haskell). | cosas, de muchas librerías de Haskell). | ||
- | |||
Tal vez sea díficil encontrar la definición de una clase, tipo o | Tal vez sea díficil encontrar la definición de una clase, tipo o | ||
Línea 131: | Línea 133: | ||
definiciones de Haskell. | definiciones de Haskell. | ||
- | + | == Usando Hoogle | |
- | - Usando Hoogle. | + | |
La forma en que vamos a utilizar Hoogle, por el momento, es consultando | La forma en que vamos a utilizar Hoogle, por el momento, es consultando | ||
definiciones en el preludio. Para ello, ingresamos en la caja de texto, | definiciones en el preludio. Para ello, ingresamos en la caja de texto, |
algo1/2010-2/haskell-intro.1281928503.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)