Perché è che la sintassi di matrice Common Lisp non sta valutando i suoi argomenti:Common Lisp: Perché non la matrice letterale valuta gli argomenti?
(let ((a 1)) #2A((a 2) (3 4)))
=> #2A((A 2) (3 4))
avrei indovinato era #2A((1 2) (3 4))
. È perché A
non è disponibile al momento del lettore?
Ci si aspetterebbe che la lista sia letterale '' ((a 3) (3 4)) 'da valutare? – kwatford
È ''((a 2) (3 4))' un elenco letterale? Ho pensato che fosse 'quote' e' ((a 2) (3 4)) 'era una lista letterale. –
Il '' 'è solo una macro reader per' quote'. Quindi '((a 2) (3 4)) 'è solo' (citazione ((a 2) (3 4))) '. Nel codice sorgente per un programma Lisp comune, l'elenco quotato è un elenco letterale. Le liste bare rappresentano il codice del programma, non i suoi dati. All'inizio è un po 'confuso, ma dopo avrà un senso. – kwatford