sábado, 6 de noviembre de 2010

REPORTE # 4 - LENGUAJES FUNCIONALES

Bueno compañeros, aqui les dejo unos programas que hize con algunos lenguajes funcionales.

Empeze con el lenguje R, y aqui mas o menos les explico en que consiste mi porgrama:


Mi programa trata de tener una matriz, y cambiarle su diagonal principal por ceros, a continuacion se los explico:

Primero declare una matriz del 1 al 16 con dimensiones de 4x4 con la funcion array










Ya que tenemos esta matriz, declaras otra matriz de indices, esta nos servira para sacar las coordendas de la diagonal que vamos a cambiar por ceros.









Aqui se extraen los numeros que seran cambiados en la matriz de 4x4




Y por ultimos sustituimos estos elementos por ceros










Mi segundo programa lo hize en Haskell y a continuacion les dejo unas caracteristicas de este lenguaje funcional y mi programa:



Haskell es un lenguaje funcional puro, de propósito general, que incluye muchas de las
últimas innovaciones en el desarrollo de los lenguajes de programación funcional

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.



  • Hugs : es un intérprete. Ofrece una compilación rápida de los programas y un tiempo razonable de ejecución. También viene con una librería gráfica muy simple, lo que lo hace adecuado para quienes lo están aprendiendo. Sin embargo no es una implementación a despreciar, es una de las más livianas y compatibles.


  • GHC : "Glasgow Haskell Compiler" compila a código nativo en una variedad de arquitecturas y puede también compilar a C. Es, probablemente, uno de los compiladores más populares e incluso tiene unas cuantas librerías (por ejemplo OpenGL) que, aunque muy útiles, sólo funcionan bajo GHC.


  • nhc98 : es otro compilador con un mejor tiempo de ejecución que Hugs. Esta implementación se enfocó a minimizar la utilización de la memoria convirtiéndola en una buena opción para arquitecturas lentas o antiguas.


  • HBC : es otro compilador a código nativo de Haskell. Si bien no ha sido actualizado en el último tiempo sigue siendo bastante útil.


  • Helium : es un nuevo dialecto de Haskell. Se centró en ser muy fácil de aprender; por ello, no incluye soporte para todo el estándar de Haskell, haciendo que no sea totalmente compatible



  • Y aqui esta mi programa

    triangulo::Int->Int->Int->String
    triangulo a b c | a+b     | a==b&&b==c&&c==b="triangulo equilatero"
         | a==b||a==c||b==c="triangulo isoceles"
         | (a^2 + b^2)==c^2||a^2 + c^2==b^2||c^2 + b^2==a^2="triangulo rectangulo"
         |otherwise="triangulo escaleno"


     Bueno lo que hace este programa es recibir tres números enteros y verifica si forman o no un triángulo, y si forman un triángulo, muestra que tipo de triángulo es, ya sea equilátero, isóceles, escaleno o de pitágoras

    Y por ultimo aqui les dejo unos tutoriales de Haskell, espero que les sirva

    http://www2.ucsp.edu.pe/~apaz/apuntes/node23.html
    http://www.lcc.uma.es/~blas/pfHaskell/gentle/intro.html
    http://horru.lsi.uniovi.es/~labra/FTP/IntHaskell98.pdf

    8 comentarios:

    1. hola!!

      me parecio muy bueno lo que realizaste en R, aunque creo que lo de haskell tiene algo compleja la estructura ..

      ResponderEliminar
    2. Los pregramas esta bien explicados, y los terminos que pusiste nos son de mucha ayuda.

      ResponderEliminar
    3. :)
      hola como estas
      pues este tema esta muy bien explicado
      tus programas estan bien hechos y pues los explicaste muy bien, no me gusto mucho la edicion que le diste a tu reporte pero pues lo importante es que quedo claro tu trabajo, nos vemos!!
      y que bien que pones links para encontrar informacion sobre este tema
      bye!

      ResponderEliminar
    4. estan muy bien tus programas, y ms el primero, que pusiste en las imagenes y lo explicas bien, y bien por las referencias

      ResponderEliminar
    5. muy buen reporte, que bien que agregaste info

      ResponderEliminar
    6. muy completo el reporte muy bien por las ejecucion en pantalla

      ResponderEliminar
    7. muy bueno el programa en R y haskell que bien que pusiste imágenes

      ResponderEliminar