[plt-scheme] Why isn't the car of a list of symbols a symbol?
>> ((quote yes) (quote no))
>>
>> is not a value. It is an application expression.
>
> It most certainly is a value. It is a list of two elements.
Huh? Really? How do you figure it evaluates to a list with two
elements? Without the quote it IS an application expression!
It is pretty straight forward:
((quote yes) (quote no)) is an application expression
(quote ((quote yes) (quote no))) is a list with two elements
'((quote yes) (quote no)) is a list with two elements
I suggest a little testing:
Welcome to DrScheme, version 4.2 [3m].
Language: Essentials of Programming Languages (3rd ed.); memory limit:
128 megabytes.
> (list? (quote ((quote yes) (quote no)) ))
#t
> (list? '((quote yes) (quote no)) )
#t
> (list ((quote yes) (quote no)))
. . procedure application: expected procedure, given: yes; arguments were: no
>
That last one means that you are trying to apply 'yes to 'no. Clearly,
it is an application expression.
--
Cheers,
Marco