La risposta di Elogent è eccellente. C'è una ragione in più che non avrebbe senso che le liste fossero funzioni:
Gli elenchi letterali hanno già un ruolo diverso, molto importante, quindi non possono essere trattati come funzioni nel modo in cui i vettori sono.
Iniziamo con un vettore contenente due funzioni, partial
e +
e un numero, 5
. Siamo in grado di trattare il vettore come una funzione, come sapete, per restituire il valore indicizzato da suo argomento:
user=> ([partial + 5] 2)
5
Fin qui, tutto bene. Supponiamo di voler utilizzare un elenco (partial + 5)
al posto del vettore, come suggerito, per restituire il valore 5
. Verrà visualizzato un messaggio di errore? No! Ma non avremo 5
come risultato, sia:
user=> ((partial + 5) 2)
7
Che cosa è successo? (partial + 5)
ha restituito una funzione, la funzione che aggiunge 5 al suo singolo argomento, e quindi questa funzione è stata applicata all'argomento 2
.
Quando una lista viene valutata, il suo primo elemento viene valutato e deve restituire una funzione. Se il primo elemento è un simbolo, viene valutato e quindi la funzione che ne è il valore viene applicata agli argomenti, che sono gli altri elementi dell'elenco. Se il primo argomento di una lista è esso stesso una lista, allora viene valutato nello stesso modo in cui sarebbe valutato se fosse al livello più alto. L'intera espressione in quell'elenco interno dovrebbe restituire una funzione, che verrà quindi applicata agli altri elementi dell'elenco esterno.
Poiché un elenco interno che è il primo elemento della lista che viene valutato ha già questo ruolo, non può anche giocare il tipo di ruolo giocato dai vettori che sono i primi elementi.
C'è una differenza tra un elenco e una sequenza? –
Benvenuti in StackOverflow, È difficile rispondere alle domande sullo stato della mente di qualcun altro in un modo che sarà possibile contrassegnare come "corretto" o "errato", quindi è difficile rispondere obiettivamente a questa domanda. –
La sequenza @BobJarvis è un'interfaccia implementata da tutti i tipi di raccolta, inclusa la lista. –