Vedo domande esistenti relative a linguaggi di programmazione specifici. Esistono differenze di implementazione in lingue specifiche, ma esiste una differenza concettuale teorica?C'è una differenza tra una lista e una tupla?
Mutevole vs immutabile: In Python, le liste sono completamente mutabili mentre le tuple sono immutabili o persistente immutabile in modo che le modifiche creano nuove tuple e non fanno in atto modifiche. Ma questo è puramente un dettaglio di implementazione. In altre lingue le tuple sono mutabili e le liste sono immutabili.
Eterogeneo vs omogeneo: Semanticamente, le tuple sono in genere eterogenee, mentre le liste sono solitamente omogenee, ma questa è più una convenzione e ci sono molte eccezioni. I linguaggi tipizzati dinamicamente come Python hanno liste eterogenee. Haskell, ad esempio, ha il supporto per elenchi eterogenei completamente tipizzati staticamente chiamati HList.
Finite vs Infinite: In teoria, un elenco può essere infinito e alcuni linguaggi di programmazione (Haskell) supportano elenchi infiniti. Una tupla non può essere infinita.
UPDATE: L'unica differenza teorica è che una tupla deve essere finita, mentre una lista può teoricamente essere infinita. Il resto delle differenze sono puramente differenze di implementazione.
Wikipedia dice "Una tupla è un elenco di elementi finito limitato".
Questo rende chiaro che una tupla è una lista, ma una lista finita.
In quale lingua (s) è la mutabilità il contrario? –
Gli elenchi e le tuple in C++ sono entrambi modificabili. – StilesCrisis
Puoi spostare questa domanda su http://cs.stackexchange.com/ – StilesCrisis