Luna jaimes ensayo_haskellu2

12
22-3-2014 Ensayo de Lenguaje Funcional de Haskell Nombre: Alejandra Luna Jaimes DOCENTE: JOSE LUIS LOPEZ TELLO MATERIA: PROGRAMACION FUNCIONAL Y LOGICA CARRERA: ING. SISTEMAS COMPUTACIONALES

Transcript of Luna jaimes ensayo_haskellu2

Page 1: Luna jaimes ensayo_haskellu2

22-3-2014

Ensayo de Lenguaje Funcional de Haskell [Subtítulo del documento]

Nombre: Alejandra Luna Jaimes DOCENTE: JOSE LUIS LOPEZ TELLO MATERIA: PROGRAMACION FUNCIONAL Y LOGICA CARRERA: ING. SISTEMAS COMPUTACIONALES

Page 2: Luna jaimes ensayo_haskellu2

INTRODUCCIÓN Este ensayo es de un lenguaje de programación funcional HASKELL Que incluye muchas de las últimas innovaciones en el desarrollo de los lenguajes de programación funcional, como son las funciones de orden superior, evaluación, tipos polimórficos estáticos, tipos definidos por el usuario, encaje por patrones, y definiciones de listas por comprensión. Incorpora, además, otras características interesantes como el tratamiento sistemático de la sobrecarga, la facilidad en la definición de tipos abstractos de datos, el sistema de entrada/salida puramente funcional y la posibilidad de utilización de módulos.

Page 3: Luna jaimes ensayo_haskellu2

INDICE

Tabla de contenido INTRODUCCIÓN ................................................................................. 1

INDICE ................................................................................................ 2

DESARROLLO .................................................................................... 3

Definición .......................................................................................... 3

Compiladores ................................................................................... 3

Otras herramientas que utiliza Haskell ............................................. 3

Expresiones, Tipos y Valores ........................................................... 4

INSTALACION DE HASKELL .............................................................. 5

PROGRAMAS EN HASKELL .............................................................. 6

Page 4: Luna jaimes ensayo_haskellu2

DESARROLLO

Definición

Haskell, es un lenguaje puro funcional también se incorpora de entra / salida tiene una sintaxis expresiva, y una rica variedad de tipos de datos incorporados, incluyendo números enteros de precisión arbitraria y racionales, así como el entero más convencional, de punto flotante y tipos booleanos.

Compiladores GHC

THE GLASGOW HASKELL COMPILER ES UN COMPILADOR QUE PRODUCE CÓDIGO NATIVO O C. SE DISTRIBUYE EL CÓDIGO FUENTE ASÍ COMO VERSIONES ESPECÍFICAS PARA LINUX WINDOWS Y MACOS X. HBC UN COMPILADOR Y ENTORNO INTERACTIVO PARA HASKELL 1.4. LLEVA VARIOS AÑOS SIN ACTUALIZARSE. SÓLO PARA PLATAFORMAS QUE USAN EL FORMATO DE OBJETO A.OUT. HUGS98 ES UN PEQUEÑO INTÉRPRETE ESCRITO EN C MUY PORTABLE QUE SE RECOMIENDA PARA APRENDER EL LENGUAJE. SE DISTRIBUYEN VERSIONES PARA UNIX WINDOWS Y MACINTOSH.

Haskell y el usuario puede que se le facilite es del compilador GHC

porque es compatible con los sistemas operativos como Windows,

Linux, Mac OSx.

Otras herramientas que utiliza Haskell

Glasgow Haskell viene con un generador de perfiles que permite encontrar qué partes de su programa están consumiendo más tiempo y espacio. Chalmers Haskell tiene una herramienta de perfiles de espacio, y un simulador de cuasi-paralelo que le permite experimentar con el funcionamiento de su programa en paralelo.

Page 5: Luna jaimes ensayo_haskellu2

Expresiones, Tipos y Valores

Un programa en lenguaje funcional consiste en definir expresiones que

Computan (o denotan) valores. Hay como los valores, en el mundo “real”

o “matemático”, pertenecen a un conjunto, las expresiones pertenecen

a un tipo.

Funciones, como a! Int, Bool !(Bool !Bool), etc.

Tuplas de cualquier longitud. Por ejemplo, (2 _ 5 +1, 4 >0) es de tipo

(Int, Bool).

Listas , secuencias ordenadas de elementos de un mismo tipo, con repeticiones.

[Int] representa el tipo lista de enteros, [Bool] es una lista de booleanos, etc. Las expresiones de tipo lista se construyen con [] (que representa la lista vacía) y: (alas es la lista que empieza con el elemento a y sigue con la lista as). También pueden escribirse entre corchetes, con los elementos separados por comas: [] :: [Bool] [3] :: [Int] ’a’ : (’b’ : (’c’ : [])) :: [Char] [2 > 0, False, ’a’ == ’b’] :: [Bool]

Page 6: Luna jaimes ensayo_haskellu2

INSTALACION DE HASKELL Descargar desde la página http://www.haskell.org/platform/ Bueno esto solo es la instalación del programa Haskell.

Page 7: Luna jaimes ensayo_haskellu2

PROGRAMAS EN HASKELL

Nos dirigimos en el botón de inicio damos clic en el editor:

Editor winGhci

Page 8: Luna jaimes ensayo_haskellu2

Para poder utilizar el editor debemos de crear el código en un bloc o editor y guardarlo como extensión .hs , así como la imagen:

En el escritorio nos aparecerá el archivo así:

Page 9: Luna jaimes ensayo_haskellu2

Entonces para abrir el archivo que generamos en el bloc de notas damos en el editor de Haskell – File---Load de que me lo abra:

Page 10: Luna jaimes ensayo_haskellu2

De esa manera el programa estará listo para recibir las instrucciones programadas.

Finalmente para nuestro ejemplo debemos escribir el nombre de la función principal acompañado del número del cual queremos contar sus dígitos por ejemplo cont 14893.

Solo este ejemplo cuenta los dígitos de un número entero Ahora vamos a otro programa que me muestre las edades aquellos que tiene arriba de los 18 años, solo que muestre los nombre en forma de lista.

Page 11: Luna jaimes ensayo_haskellu2

En un bloc de notas ponemos nuestro código y así lo abrimos desde edad.hs directamente te abre la consola:

Page 12: Luna jaimes ensayo_haskellu2

También en este código incluimos otro 2 programas en uno es parecido al prolog que afirma el hecho si es true o false la instrucción:

El primero es un programa que te multiplica un numero introducido por el usuario su función doble que es el numero entonces te lo multiplica por 2.