Я вижу существующие вопросы, относящиеся к конкретным языкам программирования. Существуют различия в реализации на конкретных языках, но есть ли теоретическая концептуальная разница?Есть ли разница между списком и кортежем?
Mutable против неизменного: В Python списки полностью изменяемые в то время как кортежи неизменны или постоянно неизменен, так что изменения создают новые кортежи и не делают в месте модификации. Но это всего лишь деталь реализации. В других языках кортежи изменяемы и списки неизменяемы.
Неоднородный гомогенный: Семантически кортежи обычно неоднородны, а списки обычно однородны, но это скорее соглашение, и существует множество исключений. Динамически типизированные языки, такие как Python, имеют гетерогенные списки. Например, Haskell поддерживает полностью статически типизированные гетерогенные списки HList.
Finite vs Infinite: Теоретически список может быть бесконечным, а некоторые языки программирования (Haskell) поддерживают бесконечные списки. Кортеж не может быть бесконечным.
ОБНОВЛЕНИЕ: Единственное теоретическое различие состоит в том, что кортеж должен быть конечным, а список теоретически может быть бесконечным. Остальные различия - это чистые различия в реализации.
Wikipedia говорит: «Кортеж - это конечный упорядоченный список элементов».
Это дает понять, что кортеж - это список, но конечный список.
На каком языке (языках) есть изменчивость другим способом? –
С ++ списки и кортежи оба изменяемы. – StilesCrisis
Возможно, вы захотите переместить этот вопрос на http://cs.stackexchange.com/ – StilesCrisis