2010-07-03 16 views
8

No estoy seguro de cómo funcionan car y cdr en las listas. Aquí está un ejemplo de lo que he intentado:Esquema: CAR y CDR de una lista

(define sample (read)) 
(display sample) 
(display (car sample)) 
(display (cdr sample)) 
(display (car (cadr sample))) 
(display (cdr (cdr sample))) 

Al entrar en el valor '(A B C D E F), aquí es lo que me pasa:

'(a b c d e f) 
quote 
((a b c d e f)) 
a 
() 

no soy capaz de entender que la forma en quote puede ser el car de sample. Además, ¿por qué (cdr sample) produce ((a b c d e f))?

Idioma: DrScheme - R5RS - Esquema

Respuesta

17

Si quería simplemente escribir la lista , sólo debe escribir . Lo que escribió, en cambio, fue (quote (a b c d e f)) porque el operador ' es la abreviatura de (quote ...).

Su lista tiene literalmente el primer elemento quote y el segundo elemento . Por supuesto, cuando escribe código fuente, necesita el quote para evitar que se ejecuten las expresiones S.

+0

Gracias. Soy un novato completo de Scheme. Esto ayuda ! –

Cuestiones relacionadas