miércoles, 31 de agosto de 2016

BONUS HASKELL !! (Opcional)

  • Para obtener puntaje extra para la nota de promoción, Ud. puede entregar el práctico de Haskell documentado.
  • generar un zip con el directorio PracHaskell2016 con el práctico de Haskell con los ejercicios resueltos y el directorio DOC con la documentación generada por Haddock y enviarlo por mail:
  • a la cuenta: progUNSLCMN@gmail.com, en el tema del mail colocar:
PIIIHPrac2016_Apellido y Nombre del alumno
  • El nombre de archivo atachado (zip) deberá ser:
                    Ing.Informatica: PIIIHPrac2016_ApellidoyNbre del alumno.zip
La fecha límite de entrega es el: 7/9/2016 (condición sine qua non)

Haskell - Haddock

Haddock es una herramienta de generación de documentación de alta calidad para lenguaje Haskell. Utiliza comentarios y tipos del código para generar documentación on-line indexada y con referencias cruzadas.
Pagina de la herramienta: Haddock Site
Manual del usuario         : Haddock On-line

Ejemplo de Uso
En el directorio donde se encuentra el modulo con el practico del lenguaje Haskell:
1) Generar el directorio DOC 
2) Bajar en su computadora personal, en el directorio que contiene el práctico, el siguiente archivo:
    PracHaskell2016.txt

3) Ejecutar la siguiente sentencia en la línea de comando del sistema operativo (Inicio/cmd en Windows, abrir terminal en Linux y OS X):

haddock PracHaskell2016.hs -o ".\Doc" -h -t "Practico Haskell 2016" -p PracHaskell2016.txt

Explicacion del comando (ver capítulo 2 del manual del usuario):

haddock PracHaskell2016.hs   -- se invoca haddock con el archivo PracHaskell2016.hs
-o ".\Doc"                   -- se configura directorio de salida (en Linux o OSX "./Doc)
-h                                    -- generar documentación en formato HTML
-t "Laboratorio Haskell 2016" -- usar este título en encabezamiento de c/pagina
-p LabHaskell.txt            --prologo que se colocará en la pagina principal en 

                                         Descripción

abrir el archivo index.html generado por Haddock en el directorio Doc para ver la documentación generada.

Laboratorio de Haskell - OBLIGATORIO

Para regularizar y/o aprobar la materia, debe presentarse un Trabajo en lenguaje Haskell (Laboratorio).
El laboratorio debe ser desarrollado de manera individual.
Laboratorio Haskell 2016: LabHaskell2016
Al descompactar el archivo se encontrara la siguiente estructura de directorios:

0_Lab2016H_PIII(Queue) 
     0_Spec se encuentra la especificación de requerimientos del laboratorio.
     1_Code con  los siguientes archivos:
          ModelTest.hs (modulo que debe invocarse desde el interprete para ejecutar el laboratorio
          y donde deben registrarse como comentarios algunas tareas del laboratorio)
          QUEUEData.hs (modulo que implementa el tipo abstracto Cola)
          LabHaskell.txt (archivo de texto para ser usado por Haddock)
     2_Doc esta vacio y se utilizara para colocar el codigo generado por Haddock

Una vez terminado el laboratorio
  •  Cambiar el nombre del directorio raiz a:  PIIIH2016_ApellidoyNombreAlumno 
  •   Enviarlo por mail a la cuenta: progUNSLCMN@gmail.com, en el tema del mail  colocar: Ing.Informatica: PIIIH2016_ApellidoyNombreAlumno
La fecha limite para enviar el laboratorio es el viernes 16/9

martes, 23 de agosto de 2016

Importante: miércoles 24 de agosto

El miércoles 24 de agosto habrá clase en sala 7, de 10 a 13hs.

martes, 9 de agosto de 2016

Lenguaje Haskell


La forma sugerida por la Cátedra de abordar el estudio del lenguaje Haskell es la siguiente:
   Seguir la Guía de estudio (la que consta de 8 puntos con sus objetivos explícitamente declarados al inicio de cada uno) y  complementar con el libro Aprende Haskell por el bien de todos. El apunte Programación Funcional de Jeroen Fokker es material de consulta opcional (si bien es antiguo, es un clásico que se obtiene en el sitio del Lenguaje).
El día miércoles 17/8 se trabajará en el Práctico, en sala de máquinas 7, 10 hs.
Leer puntos 1 a 3 de la Guía de Estudio.




Programación funcional


En ciencias de la computación, la programación funcional es un paradigma de programación declarativa basado en la utilización de funciones aritméticas que no maneja datos mutables o de estado. Enfatiza la aplicación de funciones, en contraste con el estilo de programación imperativa, que enfatiza los cambios de estado.
En la práctica, la diferencia entre una función matemática y la noción de una "función" utilizada en la programación imperativa es que las funciones imperativas pueden tener efectos secundarios, al cambiar el valor de cálculos realizados previamente. Por esta razón carecen de transparencia referencial, es decir, la misma expresión lingüística puede resultar en valores diferentes en diferentes momentos dependiendo del estado del programa siendo ejecutado. 
Los lenguajes de programación funcional, especialmente los que son puramente funcionales, han sido enfatizados en el ambiente académico principalmente y no tanto en el desarrollo de software comercial. Sin embargo, lenguajes de programación importantes tales como Scheme, Erlang, Objective Caml y Haskell, han sido utilizados en aplicaciones comerciales e industriales por muchas organizaciones.
http://en.wikipedia.org/wiki/Functional_programming