miércoles, 10 de noviembre de 2010

REPORTE 4

Aqui les dejo mi reporte 4


Realize dos programas en Haskell, espero y les sean utiles:

SERIE FIBONACCI

Los programas los realize en ubuntu ya que se me hace mas facil.
Asi se ve la terminal cuando podemos emp
Añadir imagenezar aprogramar en Haskell



Este primer programa nos calcula los numeros de la serie fibonacci en recursivo.

1. Lo primero que tenemos que hacer es crear la función en un archivo con la extensión .hs y dar las instrucciones para realizar las operaciones.
2. Ponemos el nombre de la función y después lso tipos de datos que va a manejar la función.
3. Después ponemos el nombre de la variable que se le va a asignar el valor ingresado a la función.
4. Después encontramos un if con la condición de que si x es mayor a 2 se va a detener la recursión y si es falso se va a estar llamando a si misma.


Este es el codigo


Corrida del programa


Mínimo común divisor

Es un programa que calcula el minimo común divisor de dos números recursivamente.

1. Lo primero que tenemos que hacer es crear la función en un archivo con la extensión .hs y dar las instrucciones para realizar las operaciones.
2. Ponemos el nombre de la función y después los tipos de datos que va a smanejar la función.
3. Después ponemos el nombre de la variable que se le va a asignar el valor ingresado a la función.
4. Después encontramos un if con la condición de que si y es igual a 0 se va a detener la recursión y si es falso se va a estar llamando a si misma.


Codigo del programa


Corrida del programa








El otro programa del que realize el reporte fue de R

Es uan grafica que genere iportando un archivo.

(SI LAS IMAGENES NO SE VEN BIEN DARLE CLIC PARA VERLAS EN GRANDE)


Este es la grafica que se genero

Ahora vamos a realizar un histograma con los mismos datos.

Con la función hist(Mujeres)
Aparece el histograma de las mujeres


Y ahora un histograma de hombres
Con la misma función hist(Hombres)




LENGUAJES FUNCIONALES
Aqui dejo alguna información acerca de los lenguajes funcionales


La Programación funcional es un paradigma de programación declarativa basado en la utilización de funciones matemáticas..
Características
No como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente matemáticas.
Otras características propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteración.
Tipos de Lenguajes
Existen dos grandes categorías de lenguajes funcionales:
• los funcionales puros
• los híbridos
Lenguajes Puros
En contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva, conservando a la vez su transparencia referencial, algo que no se cumple siempre con un lenguaje funcional híbrido.
Entre los lenguajes funcionales puros, cabe destacar a aHaskell y Miranda
Lenguajes Hibridos
Los lenguajes funcionales híbridos
son menos dogmáticos que los puros, al admitir conceptos tomados de los lenguajes imperativos , como las secuencias de instrucciones o la asignación de variables.
Los lenguajes funcionales híbridos más conocidos son
• Scala
• Lisp
• Scheme
• Ocaml
• SAP
• Standard ML

Aqui les dejo la definici[on de algunos lenguajes funcionales y algunos tutoriales

El Lisp (o LISP) es una familia de lenguajes de programación de computadora de tipo funcional con una larga historia y una sintaxis completamente entre paréntesis. Especificado originalmente en 1958 por John McCarthy y sus colaboradores en el Instituto Tecnológico de Massachusetts.
El Lisp fue creado originalmente como una notación matemática práctica para los programas de computadora, basada en el cálculo lambda de Alonzo Church. Se convirtió rápidamente en el lenguaje de programación favorito en la investigación de la inteligencia artificial (AI). Como uno de los primeros lenguajes de programación, el Lisp fue pionero en muchas ideas en ciencias de la computación, incluyendo las estructuras de datos de árbol, el manejo de almacenamiento automático, tipos dinámicos, y el compilador auto contenido.
El nombre LISP deriva del "LISt Processing" (Proceso de LIStas). Las listas encadenadas son una de las estructuras de datos importantes del Lisp, y el código fuente del Lisp en sí mismo está compuesto de listas. Como resultado, los programas de Lisp pueden manipular el código fuente como una estructura de datos, dando lugar a los macro sistemas que permiten a los programadores crear una nueva sintaxis de lenguajes de programación de dominio específico empotrados en el Lisp.
TUROTIALLISP




R es un lenguaje y entorno de programación para análisis estadístico y gráfico.
Se trata de un proyecto de software libre, resultado de la implementación GNU del premiado lenguaje S. R y S-Plus -versión comercial de S- son, probablemente, los dos lenguajes más utilizados en investigación por la comunidad estadística, siendo además muy populares en el campo de la investigación biomédica, la bioinformática y las matemáticas financieras. A esto contribuye la posibilidad de cargar diferentes librerías o paquetes con finalidades específicas de cálculo o gráfico.
R proporciona un amplio abanico de herramientas estadísticas (modelos lineales y no lineales, tests estadísticos, análisis de series temporales, algoritmos de clasificación y agrupamiento, etc.) y gráficas.
Al igual que S, se trata de un lenguaje de programación, lo que permite que los usuarios lo extiendan definiendo sus propias funciones. De hecho, gran parte de las funciones de R están escritas en el mismo R, aunque para algoritmos computacionalmente exigentes es posible desarrollar librerías en C, C++o Fortran que se cargan dinámicamente. Los usuarios más avanzados pueden también manipular los objetos de R directamente desde código desarrollado en C. R también puede extenderse a través de paquetes desarrollados por su comunidad de usuarios.
TUTORIALR


Haskell es un lenguaje de programación puramente funcional de propósito general y fuertemente tipado. Su nombre proviene del lógico Haskell Curry.
Las características más interesantes de Haskell incluyen el soporte para tipos de datos y funciones recursivas, listas, tuplas, guardas y calce de patrones. La combinación de las mismas pueden resultar en algunas funciones casi triviales cuya versión en lenguajes imperativos pueden llegar a resultar extremadamente tediosas de programar.
TUTORIALHASKELL Aqui podran encontrar varios tutoriales...





Pagina1
Pagina2
Pagina3 Pagina4

12 comentarios:

  1. Me agradó la info asi resumida y al grano. Lo que no entendí en clase lo entendí aquí. Nomás no entendí bien lo de lenguajes funcionales puros, me hubiera gustado una explicación más detallada.

    ResponderEliminar
  2. Patricio aqui una definicion de lo que es un "lenguaje funcional puro",es donde no hay instrucciones de ningún tipo, especialmente no hay instrucción de asignación especificando una variable.

    Saludos

    ResponderEliminar
  3. hola!

    me parecio muy buena tu info, ademas creo que explicaste muy bien cada fundamento ... =)

    ResponderEliminar
  4. muy bien el reporte en todos los aspectos muy bien muy completo

    ResponderEliminar
  5. hola, creo que esta muy completo tu reporte ya que son muy buenos los programas y la informacion que pones, saludos

    ResponderEliminar
  6. Muy completo el reporte ya que además del programa añadiste información de cada uno y en R mostraste lo fácil que es realizar una grafica.

    Saludos

    ResponderEliminar
  7. me parecio muy bien el reporte por el R que hiciste un histograma y una grafica una de las cualidades de R y pues en haskell tambien fueron programas mas sencillos pero buenos.

    ResponderEliminar
  8. hola!! esta muy completo tu reporte las imágenes ayudan a entender mejor el programa, bien hecho muy bien documentado y esta muy bien explicado paso a paso.

    ResponderEliminar
  9. :)
    hola como estas
    como todos lo mencionan tu reporte esta muy completo
    pues añadiste informacion sobre cada uno de tus programas y pues la verdad quedo muy claro y pues tus programas tambien estan bien elaborados
    nos vemos!
    bye

    ResponderEliminar
  10. Super bien que esta tu reporte aparte con las imagenes se complemento todo y no me quedo duda alguna.

    ResponderEliminar
  11. muy buen reporte bien explicado y entendible ademas de que se ve que si funcionaron los programas, genial!

    ResponderEliminar