Professional Documents
Culture Documents
1
Otros Tipos Otros Operadores con Listas
l (char? obj)
l (list-ref list n)
retorno: #t si obj es un caracter
retorno: elemento #n (basado en 0) de
l (string? obj)
list
retorno: #t si obj es un string
l (list-tail list n)
l (vector? obj) retorno:el resto de list a partir de elemento
retorno: #t si obj es un vector #n
l (symbol? obj) l (append list ...)
retorno: #t si obj es un símbolo retorno: concatenación de list ...
l (procedure? obj) l (reverse list)
retorno: #t si obj es un procedimiento retorno: list en orden invertido
2
Operadores con Listas Asociativos Operadores Aritméticos
3
Operadores con Reales Predicados de Caracteres
f) Caracteres g) Strings
l Representan objetos atómicos (letras, l Representan cadenas o secuencias de caracteres
números, caracteres especiales) l Se emplean en mensajes o buffers de caracteres
l Se escriben con el prefijo #\ l Se escriben entre citación doble; doble citación se
introduce en el texto con \”
l Ejemplos:
l Se indexan con base en 0
#\a carácter ‘a’
#\newline cambio de línea l Ejemplo:
“Hola”
#\space espacio en blanco
“\”Ohhh\””
4
Predicados de Strings Operadores con Vectores
5
Entrada y Salida Ejemplos de Entrada
l Toda E/S se realiza por puertos.
l Un puertos es un puntero a un flujo (posiblemente (input-port? ‘(a b c)) => unspecified
infinito) de caracteres (e.g. archivo) (input-port? (current-input-port)) => #t
(input-port? (open-input-file “f.dat”)) => #t
l Un puerto es un objeto de primera clase
l El sistema tiene dos puertos por defecto: entrada y (let ((p (open-input-file “mi_archivo”)))
salida estándar (normalmente es el terminal en un (let leer ((x (read p)))
(if (eof-object? x)
ambiente interactivo)
(begin
l Cuando se agotan los datos de entrada se retorna (close-input-port p)
el objeto especial eof ‘())
(cons x (leer (read x))))))
6
Operaciones de Salida (2/2) Operaciones Especiales de E/S
l (write obj )
(write obj output -port ) l (transcript-on file)
acción: escribe obj a output- port acción: inicia registro en file la sesión
l (display obj ) interactiva de Scheme
(display obj output- port ) l (transcript-off)
acción: escribe obj a output- port acción: termina de registrar sesión
l (write-char char)
l (load file)
(write-char char output- port)
acción: carga file leyendo y evaluando
acción: escribe char a output -port
secuencialmente las expresiones contenidas.
l (newline )
(newline output -port )
acción: escribe nueva línea a output -port
Observaciones a E/S
l write escribe objetos que luego pueden ser leídos
con read
l Strings se escriben con citación doble
l Un carácter se escribe con prefijo #\
l display se usa normalmente para escribir objetos
que no serán leídos
l Strings y caracteres no escriben doble citación o #\
l write-char y read-char escriben y leen un
único carácter sin usar #\
Ejemplo de E/S