tutorial net descargar compiler compiladores common lisp common-lisp

lisp - net - ¿Qué significa la f en setf?



lisp descargar (1)

El significado real de F a menudo se olvida. Según algunas fuentes, el sufijo f podría significar:

  • Campo (ver por ejemplo esta answer )
  • Forma (como se ve en varios materiales de enseñanza y manuales)

Sin embargo, según la Evolución de Lisp de Gabriel y Steele, SETF proviene de A Lisp Machine de Peter Deutsch con programas muy compactos (publicado en 1973) y F representa la función .

En este artículo, Peter Deutsch escribió:

La función SET se extiende de modo que si el primer argumento es una lista (fn argl ... argn) lugar de una variable, la función fn se llama en modo "almacenar" con los argumentos argl ... argn y newvalue (el segundo argumento de SET). SETQ también se extiende de manera obvia, pero no es particularmente útil. Una función más útil es (SETFQ (fn argl ... argn) newvalue) que cita el nombre de la función y evalúa todo lo demás. Esto permite que RPLACA, por ejemplo, se defina como (LAMBDA (XY) (SETFQ (CAR X) Y)) .

(énfasis mío)

Gabriel y Steele explican cómo esto se convirtió en SETF:

Este nombre fue abreviado a SETF en Lisp-Machine Lisp.

LISP tiene la función setf para asignar un valor a una variable. Ahora me he estado preguntando sobre el nombre de la función: la parte del set es obvia, pero ¿qué significa el sufijo f ?