今日その存在を初めて知りました。linked listとvector。2020年になって知らない予約語があったとは、目が覚めるような思いです。
AppleScriptの隠れ予約語なんだとか。たまにこういう「隠れ仕様」が転がっていて息が止まりそうになります。
set x to {{{1, 2, 3}}} as linked list --> {1,2,3}
リストの一種らしいのですが、Language Guideにも掲載されていないので、正直よくわかりません。
不用意に多次元化してしまったlistを最低限の次元に落としてくれるようです(linked list)。
かといって、有効活用したいとかいうことは考えないほうがいいようです(Apple側でも検証していないでしょうね、いろんなランタイム環境での実行内容とか)。
set x to {{{1, 2, 3}}} as linked list --> {1,2,3} set a to length of x --> 3 set b to class of x --> list --set the end of x to 4 --> error "end of {1, 2, 3}を4に設定できません。" number -10006 from last insertion point of {1, 2, 3} --set beginning of x to 0 --> error "beginning of {1, 2, 3}を0に設定できません。" number -10006 from insertion point 1 of {1, 2, 3} set x to x & 6 --> {1, 2, 3, 6}
vectorもlinked list同様な感じではあるものの、要素をbeginningとendに追加できるようで。
set aVec to {{{1, 2, 3}}} as vector set aLen to length of aVec --> 1 set aClass to class of aVec --> list set the beginning of aVec to 0 --> {0, {{1, 2, 3}}} set the end of aVec to 9 --> {0, {{1, 2, 3}}, 9}
不定クラスの予約語「anything」もその筋での評判がよろしくありません。macOS 10.14以降のスクリプトエディタでようやく誤解釈されなくなりましたが、それまではASObjC環境で「list of string or string」と解釈されてしまっていました。一方でScript Debugger上では「any」と解釈され、足並みが揃っていません。
明確に予約語がないにもかかわらず、機能が実装されているのが「as «class utf8»」。機能がないと致命的に問題が出るので、なくなることはないと思います。
edama2さんと本件について雑談していたら、「見かけたことがある」とのことで、その場で調べてみたら見つかりました。
http://mtlab.ecn.fpu.ac.jp/WSM_1999/990521193527.html
More from my site
(Visited 101 times, 1 visits today)
未知の予約語 – AppleScriptの穴 says:
[…] 一時期騒ぎになった「linked list」とか「vector」といった予約語は記憶に新しいところですが、構文確認をパスする用語の多いこと多いこと。 […]