InicioInfoLenguaje de Programación Scheme

Lenguaje de Programación Scheme

Info12/22/2009
Scheme es, como es nombrado en el titulo, un lenguaje de programacion, del tipo funcional, de un tipado dinamico e interpretado, dialecto del LISP, que fue desarrllado en la decada de los 70's por Guy L. Steele y Gerald Jay Sussman, el cual se utiliza principalmente en la academia. Si bien es cierto es funcional, puede ser utilizado para simular otros paradigmas (como el conocido paradigma orientado a objetos utlizado en lenguajes como java o python)
Es un lenguaje minimalista en todo sentido, teniendo dentro de si el menor numero posible de ordenes nativas, dando la opcion de crear funciones mas complejas a partir de estas por medio de abstracciones. Utiliza principalmente listas para el manejo de datos, ademas de los arrays. Como se menciono antes, este lenguaje no tiene una sintaxis definida para programar en diversos paradigmas, pero los mismos pueden ser "simulados" con las ordenes nativas del mismo.

Sintaxis
Scheme posee una sintaxis reducida comparado a otros lenguajes. Utiliza la notacion prefija. Por ejemplo, si se desea realizar la suma 1+1, se debe programar la siguiente instruccion
(+ 1 1)
Los parentesis son obligatorios, ya que separan las instrucciones de seran evaluadas por el interprete.
Para realizar comentarios dentro del codigo, se utiliza el ";", asi se marca que toda la linea sera de comentario
Ejemplo:

;Esta linea es un comentario, y la orden de abajo es ejecutada
(+ 1 1)

Variables locales y globales
Las variables son, tal como mencione al principio, dinamicamente tipadas. Dicho de otra forma, no se ebe especificar lo que se va a guardar dentro de la misma. Las variables globales se nombran con la instruccion (define nombre valor)
Por ejemplo,

(define variable 5)

Por otro lado, las variables locales se definen con la instruccion ( let variables funcion).
Por ejemplo:
;sumar dos numeros guardados en una variable local
(let
;variables de la operacion
((numero1 5)
(numero2 7))
;instruccion que suma los numeros, es decir, la funcion
(+ numero1 numer2))

Creando Procedimientos Completos
Utilizando la instruccion (define (nombre args) funcion) se crea un procedimiento dentro del programa. En mi caso, voy a implementar la instruccion del ejemplo anterior en una funcion
;funcion que suma dos numeros agregados como argumento
(define (suma num1 num2)
;implementacion del let anterior, aunq no es estrictamente necesario
(let
;variables de la operacion
((numero1 num1)
(numero2 num2))
;instruccion que suma los numeros, es decir, la funcion
(+ numero1 numero2))

De la misma manera, el procedimiento anterior pudo ser escrito de esta manera:
;segunda implementacion de suma de dos numeros, esta vez, sin el let
(define (suma num1 num2)
(+ num1 num2))

para llamar a la funcion creada, se utiliza la orden (funcion args). Asi, para llamar a nuestra funcion de suma, se escribe:
(suma 2 3)
se llama con dos numeros, debido a que con esa cantidad de argumentos se establecio la funcion.


Estructuras de control
En Scheme existe la instruccion cond, con la cual se pueden revisar si se cumplen o no con requerimentos para realizar dicha funcion. Su sintaxis es:
(cond
((condicion) (funcion-salida)
....
....
....
(else (funcion-salida))
en este caso, el else es opcional

por ejemplo, si se desea sumar solamente numeros positivos en nuestra funcion de suma, se podria realizar la siguiente implementacion

;funcion de suma, esta vez, aceptara solamente numeros positivos
(define suma num1 num2)
;;manejo de las condiciones
(cond
((and (> num1 0) (>num2 0)) (+ num1 num2))
(else
"error al recibir parametros" )))
Manejo de valores booleanos
En scheme se utiliza el #t como verdadero y el #f como falso. Tecnicamente, cualquier simbolo que no sea #f sera tomado por el interprete como #t.
Para poder operarlos, existen las instrucciones AND, OR, NOT, de funcionamiento identico a los demas lenguajes de programacion.
En el caso de AND, devolvera #t si y solo si ambos argumentos son verdaderos
(and #t #t)
OR devolvera #t si uno o ambos argumentos son verdaderos
(or #t #f)
NOT devolvera el complemento a su argumento
(not #t)


por ahora, es todo, espero haber explicado al menos los conceptos basicos del lenguaje. Para documentacion mas profunda o para descargar el interprete, pueden ir a http://www.plt-scheme.org/
Existen versiones para Mac, Linux y Windows

Cualquier comentario sera de gran ayuda (este es mi primer post )

Fuentes:
1-Experiencia Personal (Estudiante de Ingenieria en Computacion)
2- http://es.wikipedia.org/wiki/Scheme
Datos archivados del Taringa! original
22puntos
4,902visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

e
egamboau🇦🇷
Usuario
Puntos0
Posts2
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.