古くからのAppleScriptユーザーには既知のことかもしれませんが、リストには二種類の書式が存在し、それぞれの実装も微妙に異なります。
まずは、普段使われている{}によるもので、クラスはvector(複数形はvectors)です。
{1, 2, 3, 4, 5}
そしてもう一つは[]によるもので、クラスはlinked list(複数形はlinked lists)です。
[1, 2, 3, 4, 5]
ほとんどの場面で、これらの二つの動作に差はありません。class属性を取り出してみても、どちらもlistです。
詳しくは、Apple Script1.1-Jの「リリースノート(原語)」の中の「General Notes」を参照していただければ判るのですが、簡単にlinked listの特徴を並べると以下の通りです。
特に「項目の多いリストの注意」で指摘した速度低下を、2の特徴は助長し、3や4の特徴は軽減してくれます。
1〜4までの特徴はすぐに理解できると思いますが、5番目の「値がリンクされる」というのがもう一つ分りにくいと思います。
とりあえず、以下のスクリプトを実行してみて下さい。
set x to [1, 2, 3, 4, 5]
set y to [6, 7]
set z to x&y
set item 2 of x to "textX"
set item 2 of y to "textY"
z
zの値は予想に反して{1, 2, 3, 4, 5, 6, "textY"}となっているはずです。
なお、結合するときに、&の両辺がlinked listである必要があります。
vectorをlinked listに、またはその逆に変換するのは簡単で、as演算子を利用して、問題なく変換されます。
set x to [1, 2, 3, 4, 5]
set y to [6, 7] as vector
set z to x&y
set item 2 of y to "textY"
z