by shigemk2

当面は技術的なことしか書かない

対話によるCommon Lisp入門 12 setfの第二引数は評価される

[7]> (setf x apple)

*** - SETQ: variable APPLE has no value
The following restarts are available:
USE-VALUE      :R1      Input a value to be used instead of APPLE.
STORE-VALUE    :R2      Input a new value for APPLE.
ABORT          :R3      Abort main loop
Break 1 [8]> :a
[9]> (setf x `apple)
APPLE

setfの第二引数は評価されるので、appleは変数として評価される。
しかしappleはまだ何も代入されていないから、「値がない」と言われてエラーになるのだ。