チャンクの構文
単一のチャンク
文法:
chunk number of expression
注:この文法記述と次の文法記述において、_チャンク_は任意のチャンクタイプ:文字(またはその省略形、char)、単語、行、アイテム、テキストアイテム、リストアイテムを表すために使用されます。同様に、_chunks_はこれらの項目の複数形を表します。_番号_は正または負の数値に評価される要素で、_表現_はチャンクが参照するソースまたは宛先の値です。"of"が表示されている場所では、“of”または“in”を、その時に自然に感じる方を使用することができます。
全てのタイプのチャンクのためのチャンク表現は、いくつかの異なる方法で表現することができます。単一のチャンク要素を記述することができます:
put item 17 of scores into quiz3
put word 4 of "Mary had a little lamb" --> "little"
マイEggplantの数値を使って、元の終端から逆に数えることもでき、-1は最後のチャンク要素を、-2は最後から2番目を、というように指定します:
get item -2 of "apple,banana,pear,orange" --> "pear"
序数のチャンク
文法:
{the} ordinal chunk of expression
チャンクの要素は、序数(first
、second
、...、millionth
、または1st
、2nd
、...、1000000th
)によっても参照されることがあります。
get the third item of [9,12,13,42] -- 13
put it --> 13
ordinal-to-last の形式を使用すると、(負の数を使用する代わりに) 値の末尾から逆算できます。
get the third-to-last item of [9,12,13,42]
put it --> 12
Last
, Penultimate
, Middle
, Any
特別な序数
数値の序数の他にも、使用できる「特別な序数」がいくつかあります。
-
Any
は指定されたタイプのすべての要素の中からランダムに要素を選択します。 -
Middle
はそのタイプのチャンク要素の総数に基づいて、中央に最も近い要素を選択します。 -
Last
は最後のチャンク要素を指定します(これは-1を指定するのと同じです)。 -
Penultimate
は最後から二番目のチャンク要素を指定します(-2を指定するのと同等です)。 -
数値の序 数に加えて、
last
、penultimate
、middle
(またはmid
)、およびany
の4つの“特別な序数”を使用することができます。 -
chunks firstNumberOrOrdinal to lastNumberOrOrdinal of expression
-
{the} last number chunks of expression
例:
put any item of "cow,ant,moose,goat,donkey,elephant"
例:
get the middle character of "serendipity" --> "d"
put it --> "d"
例:
put the penultimate word of "Peace is its own reward." --> "own"
例:
put the last line of gettysburgAddress into finalParagraph
チャンクの範囲
md 構文:
chunks firstNumberOrOrdinal to lastNumberOrOrdinal of expression
chunks range of expression {the} first number chunks of expression
{the} last number chunks of expression
チャンク表現はチャ ンク要素の範囲を指すことができます。チャンクの範囲は、指定された開始要素と終了要素を含み、その間のすべての要素を含みます。
例:
put characters 3 to 5 of "dragon" --> "ago"
例:
put words 1 to 2 of "Alas, poor Yorick!" --> "Alas, poor"
例:
put items middle to last of [1,2,3,4,5,6,7] --> [4,5,6,7]
例:
put the second to penultimate items of [1,2,3,4,5,6] --> [2,3,4,5]
例:
put items -3 to -1 of [1,2,3,4,5,6] --> [4,5,6]
範囲値もまた、チャンクの範囲にアクセスするために使用できます。
例:
put chars 4..6 of "incredible" --> "red"
例:
set fruitRange to 7..10
put chars fruitRange of "now appearing" --> "pear"
値の始めまたは終わりの範囲については、"最初のn"または"最後のn"のチャンク要素を指定することもできます。
例:
put the last three items of [1,2,3,4,5,6] --> [4,5,6]
例:
get the first 4 characters of "abracadabra" --> "abra"
put it --> "abra"
複数のチャンク(チャンクのリスト)
文法:
chunks indexlist of expression
順序のチャンク番号のリストを指定することで、ソース値の複数の別々のチャンクにリストとしてアクセスすることができます。
例:
put items [1,3,5,7] of scores into oddResults
例:
put words [4,1,2,-1] of "Mary had a little lamb" --> [little,Mary,had,lamb]
複数のチャンクにアクセスする結果は常にリストです。負の数値や特別な序数(middle, anyなど)も使用 できます。
例:
get items [-2,"middle"] of "apple,banana,pear,orange,peach" --> [orange,pear]
put it --> [orange,pear]