SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
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
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.
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
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.
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]
INSTALACION DE HASKELL
Descargar desde la página http://www.haskell.org/platform/
Bueno esto solo es la instalación del programa Haskell.
PROGRAMAS EN HASKELL
Nos dirigimos en el botón de inicio damos clic en el editor:
Editor winGhci
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í:
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:
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.
En un bloc de notas ponemos nuestro código y así lo abrimos desde
edad.hs directamente te abre la consola:
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.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (18)

Flex y Bison
Flex y BisonFlex y Bison
Flex y Bison
 
Espacios de nombres en visual basic
Espacios de nombres en visual basicEspacios de nombres en visual basic
Espacios de nombres en visual basic
 
Compiladores flex bison
Compiladores flex bisonCompiladores flex bison
Compiladores flex bison
 
Flex y bison
Flex y  bisonFlex y  bison
Flex y bison
 
Compiladores - Flex y Bison
Compiladores - Flex y BisonCompiladores - Flex y Bison
Compiladores - Flex y Bison
 
Usando flex en Windows
Usando flex en WindowsUsando flex en Windows
Usando flex en Windows
 
Taller de flex y bison
Taller de flex y bisonTaller de flex y bison
Taller de flex y bison
 
Lenguaje de programación "C"
Lenguaje de programación "C"Lenguaje de programación "C"
Lenguaje de programación "C"
 
Comando raptor
Comando raptorComando raptor
Comando raptor
 
INTRODUCCION A FLEX Y BISON
INTRODUCCION A FLEX Y BISONINTRODUCCION A FLEX Y BISON
INTRODUCCION A FLEX Y BISON
 
Introducción al R Commander
Introducción al R CommanderIntroducción al R Commander
Introducción al R Commander
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Abap
AbapAbap
Abap
 
Escuela superior politecnica de chimborazo
Escuela superior politecnica de chimborazoEscuela superior politecnica de chimborazo
Escuela superior politecnica de chimborazo
 
Estructura de un proyecto android
Estructura de un proyecto androidEstructura de un proyecto android
Estructura de un proyecto android
 
4035426 ejercicios-resueltos-en-pascal
4035426 ejercicios-resueltos-en-pascal4035426 ejercicios-resueltos-en-pascal
4035426 ejercicios-resueltos-en-pascal
 
Programa pascal
Programa pascalPrograma pascal
Programa pascal
 
INTRODUCCIÓN COMPILADORES
INTRODUCCIÓN COMPILADORESINTRODUCCIÓN COMPILADORES
INTRODUCCIÓN COMPILADORES
 

Similar a Luna jaimes ensayo_haskellu2

Haskell wikipedia
Haskell wikipediaHaskell wikipedia
Haskell wikipediaHofexfoq
 
Unidad v paradigma funcional de programacion fiuncional
Unidad v   paradigma funcional de programacion fiuncionalUnidad v   paradigma funcional de programacion fiuncional
Unidad v paradigma funcional de programacion fiuncionalAshley Stronghold Witwicky
 
Lógica De La Programación Y Lenguaje de Pascal
Lógica De La Programación Y Lenguaje de PascalLógica De La Programación Y Lenguaje de Pascal
Lógica De La Programación Y Lenguaje de PascalFernando Galvez
 
Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++ernestre
 
Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++ernestre
 
Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2gabrielalija10
 
Libro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACIONLibro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACIONGabriel Alija
 
Presentación Lenguajes de Programación y Utilerias
Presentación Lenguajes de Programación y UtileriasPresentación Lenguajes de Programación y Utilerias
Presentación Lenguajes de Programación y UtileriasPetros Peña Vallejo
 
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de ProgramaciónTrabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de ProgramaciónEmmanuel Fontán
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a ObjetosManuel Antonio
 
Generalidades de la programacion
Generalidades de la programacionGeneralidades de la programacion
Generalidades de la programacionDiego Rojas
 
conceptos de programacion
conceptos de programacionconceptos de programacion
conceptos de programacionkrencitap
 

Similar a Luna jaimes ensayo_haskellu2 (20)

Haskell wikipedia
Haskell wikipediaHaskell wikipedia
Haskell wikipedia
 
Unidad v paradigma funcional de programacion fiuncional
Unidad v   paradigma funcional de programacion fiuncionalUnidad v   paradigma funcional de programacion fiuncional
Unidad v paradigma funcional de programacion fiuncional
 
Lógica De La Programación Y Lenguaje de Pascal
Lógica De La Programación Y Lenguaje de PascalLógica De La Programación Y Lenguaje de Pascal
Lógica De La Programación Y Lenguaje de Pascal
 
Bt haskell-1
Bt haskell-1Bt haskell-1
Bt haskell-1
 
Scripts
ScriptsScripts
Scripts
 
Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++
 
Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++
 
Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2Libro2 - PROGRAMACION2
Libro2 - PROGRAMACION2
 
Libro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACIONLibro 2 - ORIGENES DE LA PROGRAMACION
Libro 2 - ORIGENES DE LA PROGRAMACION
 
EXPO PERL UTT
EXPO PERL UTTEXPO PERL UTT
EXPO PERL UTT
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Presentación Lenguajes de Programación y Utilerias
Presentación Lenguajes de Programación y UtileriasPresentación Lenguajes de Programación y Utilerias
Presentación Lenguajes de Programación y Utilerias
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Tarea3
Tarea3 Tarea3
Tarea3
 
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de ProgramaciónTrabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
Trabajo práctico sobre Clojure, Evaluación de un Lenguaje de Programación
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Generalidades de la programacion
Generalidades de la programacionGeneralidades de la programacion
Generalidades de la programacion
 
conceptos de programacion
conceptos de programacionconceptos de programacion
conceptos de programacion
 
3
33
3
 

Luna jaimes ensayo_haskellu2

  • 1. 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
  • 2. 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.
  • 3. 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
  • 4. 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.
  • 5. 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]
  • 6. INSTALACION DE HASKELL Descargar desde la página http://www.haskell.org/platform/ Bueno esto solo es la instalación del programa Haskell.
  • 7. PROGRAMAS EN HASKELL Nos dirigimos en el botón de inicio damos clic en el editor: Editor winGhci
  • 8. 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í:
  • 9. 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:
  • 10. 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.
  • 11. En un bloc de notas ponemos nuestro código y así lo abrimos desde edad.hs directamente te abre la consola:
  • 12. 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.