Bienvenidos

hola a todos bienvenidos al blog comenten!!^_^








miércoles, 20 de octubre de 2010

REPORTE #4


Un programa en este tipo de lenguajes consiste en un conjunto de declaraciones de ecuaciones recursivas.La programación funcional tiene sus raices en el cálculo lambda.
Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente matemáticas, en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresión depende únicamente del significado de sus subexpresiones), y por tanto, la carencia total de efectos laterales.
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 (lo que obliga en la práctica a que todas las repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas).
 


shcheme
Scheme es un lenguaje de programación. Es un lenguaje funcional (si bien impuro, ya que, por ejemplo, sus estructuras de datos no son inmutables) y un dialecto de Lisp. Fue desarrollado por Guy L. Steele y Gerald Jay Sussman en la década de los setenta e introducido en el mundo académico a través de una serie de artículos conocidos como los Lambda Papers de Sussman y Steele.

SUMAR ELEMENTOS DE UNA LISTA

El programa consiste en sumar todos los elementos de una lista, entonces si la lista L
esta vacía, retornamos 0, ya que no hay elementos para sumar. Si la lista tiene elementos retornamos la suma de la cabeza de la lista más el resultado que nos devuelva la suma de los elementos de la cola de la lista.

Este es el código:


(define (sumar L)  

  (if (null? L)

      0

      (+ (car L) (sumar (cdr L))))

  )


otro programa en scheme un poco mas complejo

Definición recursiva de funciones aritméticas

La función suma-armonicos calcula la suma de los primeros n términos de una serie de armónicos, es
decir:
1+ 1/2 + 1/3... + 1/n
La base en este caso se refiere al valor n=0 en el que la suma es nula.
Base: si n=0 entonces suma-armonicos(0)=0
Recurrencia: conocemos suma-armonicos(n-1),, entonces

suma-armonicos(n) = (1/n) + suma-armonicos(n-1)
suma-armonicos(n) ::=
si n=0
entonces 0
sino 1/n + suma-armonicos(n-1)
finsi
(define(suma-armonicos n)
(if (zero? n) 0 (+ (/1 n) (suma-armonicos (- n 1)))))




erlang

Erlang es un lenguaje de programación de propósito general y un entorno
de ejecución

Erlang pertenece a la clase de lenguajes orientados a mensajes. Estos lenguajes
proporcionan concurrencia usando procesos paralelos. No hay objetos
compartidos en un lenguaje orientado a mensajes, sino que toda la interacción
entre los procesos se realiza enviando y recibiendo mensajes.


un programa sobre la serie de fibonnaci

fibonacci(0) ->
1;

fibonacci(1) ->
1;
fibonacci(N) ->
fib(N-2) + fib(N-1).










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.


un programa sencillo en haskell

nombrador :: I O ()
nombrador =

putStr “¿Cuál es tu nombre?” >>
getLine >>= \variable ­>
putStr (“Tu nombre es “ ++ variable)
otro programita
-- Dado dos números enteros A y B encuentre el MCD 
-- (máximo común divisor) entre ambos. 
-- Utilizando el método de Euclides 
 
euclides (x,y)
  |(x == y) = x
  |(x < y) = euclides(x, y - x)
  |otherwise = euclides( x - y, y)
 



tutoriales 


www.gii.upv.es/web_architecture/personal/.../ccp-erlang.pdf

http://gluc.unicauca.edu.co/wiki/index.php/Programaci%C3%B3n_Funcional_con_Scheme  

http://www.scribd.com/doc/504489/Lenguaje-Haskell  





                                        




16 comentarios:

  1. Hoolaa Alheli tu reporte es variado ya que usaste 3 lenguajes funcionales, se me hace mas fácil poder comparar códigos entre ellos de esta manera, acerca del Scheme, yo creo que es muy útil para usarlo en calculo, ya que nos generaliza una función, la única duda es que no supe como interpretar tu función de la suma de una lista, si me corrió y todo pero al aplicarla no supe que valores dar jeje aver si me puedes resolver esa preguntilla.
    en cuanto al Erlang pues no le entendí muy bien al propósito de ese lenguaje. Y del Haskel si le entendí perfecto, y se me hace muy fácil de usar checare los tutoriales que pusiste de este lenguaje para ayudarme a entenderle mejor, muy buen reporte eee. Saludos.

    ResponderEliminar
  2. Gracias por tu reportee...ke bueno ke isiste de los 3 lenguajes .le variaste mucho :)
    gracias y nos vemos en clase

    ResponderEliminar
  3. Me parece muy bien que hayas probado tres diferentes lenguajes, y que además de los programas hayas puesto descripciones de cada lenguaje.

    Calificación: 3/3 =)

    ResponderEliminar
  4. hola!!

    me gusto que hicieras 3 programas, ademas de que tienes una buena descripcion en cada uno de ellos ..

    felicidades por tu calificacion !!

    ResponderEliminar
  5. esta muy completo (: hasta pusiste tres lenguajes, yo muy apenas pude con dos jaja, pero muy bien! le entendi muy bien a los lenguajes, de echo yo tambien use drscheme es muy sencillo.

    ResponderEliminar
  6. Me gusto tu reporte, la descripcion de cada uno de ellos y su programa esta muy bien..
    Tu programa de scheme me ayudo a entenderle un poco mas a ese lenguaje

    ResponderEliminar
  7. Muy bien, con la descripcion de cada lenguaje se hace mas sencillo y entendible los programas.

    ResponderEliminar
  8. Los programas estan muy bien además eres la primera que veo que puso 3 lenguajes diferentes, bueno son faciles de entender.
    bye

    ResponderEliminar
  9. que bien que pudiste dar una explicacion primero de cada uno de los lenguajes y tus codigos estan muy bien hechos, aunque los dos primeros, si se ven un poco sencillos, pero esta bien tu reporte

    ResponderEliminar
  10. Hola

    tu reporte esta muy completo ya que pusiste 3 programas, y pusiste imagenes donde nos podemos dar cuenta que los programas corren y darnos una idea de como es el lenguaje.

    ResponderEliminar
  11. aaaaaaaah super comletote esncerio ke bien

    ResponderEliminar
  12. muy bien el reporte e intenta incluir las pantallas de ejecucion de cada uno pero muy bien la informacion.

    ResponderEliminar
  13. Muy bien los programas que hiciste sobre todo que les agregaste informacion

    ResponderEliminar
  14. Muy completo el reporte, hiciste 3 programas y además añadiste información de cada uno, solo falto poner imágenes de ejecución.

    Saludos

    ResponderEliminar
  15. me parecio muy bien que allas utilizado 3 y no solo 2 programas y pues tambien lo explicaste muy bien son programas cortitos y faciles pero entendibles y con buena descripcion.

    ResponderEliminar
  16. hola, me parecieron muy bien explicaods tus programas, ademas de que la informacion es muy util junto con los tutoriales, falto explicar un poco de codigo, saludos

    ResponderEliminar