Pregunta

El siguiente es un ejercicio de SICP. No pude resolverlo por mi cuenta. ¿Puede alguien por qué ayudarme a entender?

Escriba el siguiente código en interpreator:

(car ''abracadabra)

Y se imprime 'cita'. ¿Por qué?

¿Fue útil?

Solución

Como dijo gimpf, 'abracadabra = (citar abracadabra). Puede verificar esto escribiendo "abracadabra en el REPL, que se imprimirá (citar abracadabra).

Otros consejos

Porque '' abracadabra es realmente (cita (cita abracadabra)). En Esquema, la regla es: evaluar todas las partes de la expresión-s, y aplicar la primera parte al resto de las partes.

" coche " y " cita " Son simbolos en la parte de abajo. #car y #quote son las funciones a las que hacen referencia.

Si tomas

(car (quote (quote abracadabra)))

y evalúa las partes, obtienes

(#car (quote abracadabra))

Luego, aplique la primera parte (la función de automóvil) a la segunda parte (una lista de dos símbolos).

quote

Y obtienes solo el símbolo " cita " ;.

Solo recuerda, para averiguar qué sucede en el Esquema, evalúa las partes y aplica las primeras al resto. Si evalúas una cita, obtienes las cosas dentro. La única parte confusa es que algunas primitivas (números y cadenas) se evalúan a sí mismas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top