タプルとは?

RubyPerlになかったタプル(Tuple)という概念がでてきた。これはリストとどう違うのだろう。

tup = (1, 2, 3, 4)

というように定義して

print tup[1]

というように利用。これがリストだと、

lst = [1, 2, 3, 4]
print lst[1]

だ。ううむ定義の方法が違うが何が違うんだ。
タプルは変更ができないようだ。

tup[2] = 100 # これはエラー
lst[2] = 100 # これはOK

単にRead Onlyのリストなんだろうか。

調べてみた。型自由な構造体というか何というか。リストはハッシュのキーになれないがタプルは中身が同じであれば同じハッシュ値になることが保証されているそうなのでキーとして使える。ということらしい。

すっきりしない。