Queues are identical to lists, except for the fact appending to the end - not to the begin - has constant time.
Le code sono comunemente intese come FIFO strutture, che sono non "identico agli elenchi oltre all'aggiunta fino alla fine". Con le code, di solito scrivi alla coda e leggi dalla testa; questa è una semantica completamente diversa.
Se intendi una struttura LIFO , allora stai davvero parlando di uno stack, che è il modo in cui le Liste sono più comunemente usate nel codice ricorsivo / funzionale. In tal caso, perché ti interessa che chiamiamo la posizione da cui leggiamo e scriviamo alla testa o alla coda? Il modo di lavorare con esso sarebbe lo stesso in entrambi i casi. L'unico contesto in cui farebbe la differenza è dove l'elenco viene usato anche come stringa (una preoccupazione piuttosto banale).
Gli elenchi / stack sono strutture molto utili nella programmazione funzionale:
- La testa può rappresentare lo stato di un calcolo.
- La struttura è persistente , riducendo al minimo la copia e preservando l'immutabilità.
-
testa e coda accesso in tempo costante con una struttura molto più semplice di qualsiasi tipo indicizzato (codice sottostante più semplice ecc.)
Le code perdono alcuni di questi benefici (ad es. persistenza) e aggiungono complessità a nessun guadagno. Se il vantaggio principale è che trovi le code più facili da capire, prova più difficile.