comandos scheme

Solo disponible en BuenasTareas
  • Páginas : 6 (1496 palabras )
  • Descarga(s) : 0
  • Publicado : 22 de octubre de 2013
Leer documento completo
Vista previa del texto
Manual de referencia de Scheme

1

El lenguaje de programación Scheme

En cualquier lenguaje tenemos palabras que se combinan siguiendo ciertas reglas para
formar frases con signicado. A su vez, estas palabras se forman uniendo las letras de
un abecedario. Scheme, como lenguaje de programación, utiliza de manera análoga a las
palabras los denominados símbolos y éstos se forman uniendolas letras del alfabeto (sin
distinguir mayúsculas de minúsculas), los dígitos del 0 al 9 y cualquier otro carácter que
aparezca en el teclado salvo:
( ) [ ] { } ; , "' ` # \
ya que tienen un signicado especial, similar al que tienen los signos de puntuación.
Los caracteres:

+ - .
también son especiales y no deben aparecer en primer lugar en un símbolo. Los números
no se consideransímbolos en Scheme.
Un símbolo que es usado para representar un valor se denomina variable. El intérprete
determinará el signicado de cada variable; los números tienen su valor usual.
Siguiendo la analogía con los lenguajes el equivalente en Scheme a las frases son las
expresiones, que pueden consistir en un símbolo, un número o una lista, es decir, un
paréntesis izquierdo, seguido de expresionesseparadas por espacios en blanco, y para
terminar un paréntesis derecho. La primera de dichas expresiones debe evaluar a un
procedimiento, evaluándose las restantes como los argumentos del mismo.
Notación

En lo que sigue utilizaremos la siguiente notación al escribir las expresiones:
(procedimiento expresion 1 . . . expresion k )
es decir, el nombre del procedimiento aparecerá en negrita ylos argumentos en itálica.
Además tendremos en cuenta que si el nombre de un argumento es el nombre de un
tipo (ver el apartado  PREDICADOS DE TIPO), entonces el argumento debe ser del tipo
nombrado . Usaremos el siguiente convenio:

z
x
n
k

número complejo
número real
número entero
número natural
obj, expresion, ex
expresiones

l
lista
cter carácter
cadcadena
proc procedimiento
de cualquier tipo
sucesión de expresiones

Utilizaremos los corchetes para denotar expresiones opcionales y los puntos suspensivos
para denotar varias ocurrencias.

(procedimiento obj1 . . . objk ) Indica que procedimiento es de aridad variable
(procedimiento obj1 [obj 2 ])

Indica que procedimiento tiene dos argumentos y
el segundo es opcional

Acontinuación enumeraremos las expresiones más usuales seguidas de su valor.

CcIa

Manual de referencia de Scheme

2

Predicados de tipo

(symbol? obj )

Si obj es de tipo símbolo entonces #t; e.o.c. #f.

(procedure? obj )

Si obj es de tipo procedimiento entonces #t; e.o.c. #f.

(number? obj )

Si obj es de tipo número entonces #t; e.o.c. #f.

(pair? obj )

Si obj es de tipopar punteado entonces #t; e.o.c. #f.

(null? obj )

Si obj es la lista vacía entonces #t; e.o.c. #f.

(boolean? obj )

Si obj es uno de los valores de verdad (o booleanos), #t
o #f, entonces #t; e.o.c. #f.

(vector? obj )

Si obj es de tipo vector entonces #t; e.o.c. #f.

(char? obj )

Si obj es de tipo carácter entonces #t; e.o.c. #f.

(string? obj )

Si obj es de tipocadena entonces #t; e.o.c. #f.

Ningún objeto verica más de uno de los predicados anteriores; otro predicado útil es:

(list? obj )

Si obj es de tipo lista entonces #t; e.o.c. #f.

Predicados de igualdad

(= z1 [z2 . . . zk ])

Igualdad numérica entre los argumentos.

(eq? obj1 obj 2 )

Igualdad simbólica.

(eqv? obj1 obj 2 )

Igualdad numérico-simbólica.

(equal? obj1obj 2 )

Igualdad de valores.

Variables y literales

expresion

Valor de expresion.

(define simbolo obj )

Le asigna a simbolo el valor de obj.

(quote obj ) ≡ 'obj

obj.

Los números, caracteres, cadenas y valores de verdad (o booleanos), evalúan a si mismos
por lo que no necesitan quote.

(let
([(simbolo1 obj1 )
.
.
.
(simbolok objk )])
ex 1 [ex2 . . . ex r ])...
tracking img