lunes, 18 de octubre de 2010

cuarto reporte

Programas en Dr scheme

Scheme es un lenguaje de programación funcional y un dialecto de Lisp.
Fue desarrollado por Guy L. Steele y Gerald Jay Sussmas en la decada de los setenta e introducido al muno academico atraves de una serie de articulos conocidos como los Lamda Paper de Sussman y Steele.
Tiene una sintaxis muy reducida, comparado con muchos otros lenguajes. No necesita reglas de precedencia, ya que en esencia, carece de operadores: usa una notacion prefija para todas las llamada a funcion.
Facilita la programacion funcional. La programacion funcional puro no precisa de variables globales ni sufre de efectos secundarios y es por tanto automaticamente segura en presencia de procesis concurrentes.


#lang scheme
(define (bar vara varb varc)(* (+ vara varb) varc) )
_____________________________________________________

Welcome to DrScheme, version 4.1.3 [3m].
Language: Module; memory limit: 128 megabytes.
> (bar 1 1 1)
2
> (bar 4 4 8)
64






Es un programa sencillo pero que funciona. Primero de claramos una funcion creo, luego definimos sus variables yo las llame vara varb varc despues corrie el programa y para mandar llamara a la funcion solo escribí


(bar numero numero numero) y el programa calculaba el resultado de la suma que en si misma traia una multiplicacion




















Mi siguiente programa es este:
#lang scheme
(define (count-down num)
(cond [(zero? num) 'Done]
(else (count-down ( - num 1)))))
__________________________________________________________
Welcome to DrScheme, version 4.1.3 [3m].
Language: Module; memory limit: 256 megabytes.
> (count-down 5)
Done
>


Este es un programa de recursion dond creo una funcion que se va a qitar uno si es diferente a cero i al llegar a cero imprimira en la pantalla done


Bueno estos son mis primeros dos prgramas con Drscheme. La verdad es qe si batalle pues primero me meti a unos tutoriales donde los ejemplos en vez de empezar por lo sencillo empezaban luego luego a lo dificil y la verdad es que el lenguaje no esta tan complicado una vez ue le encuentras el hilo a la redaccion



Programa en Lisp
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.


mi programa es un factorial


(defun factorial (n) (if (* n 0= 1 (* n (factorial (- n 1 )))))

La verdad es que el lenguaje lisp se me hizo todavia mas sencillo que el Dr scheme