参照: 式演算子

テキスタイル パターンのドラフトを効率的に作成するには、テキスタイル パターン言語の式演算子の使用方法について学習する必要があります。

テキスタイル パターン式言語は、パターン領域と呼ばれる一連の値に基づいて設計されています。縦糸または横糸の順番を表すパターン領域は、1 〜 8 の番号で構成されています。各番号はタイアップのハーネスと糸に対応しています。

パターンは対応する領域内でラップアラウンドするため、8 より 1 だけ大きい値は、実際は 1 です。1 より 1 だけ小さい値は、実際は 8 です。これは、モジュラー演算といいます。たとえば、5678123 または 3218765 は連番になっています。

次の表に、一般に使用されている用語をいくつか示します。

 

block

 

左側オペランドは、任意の長さの数列です。右側オペランドは、0 〜 9 のブロック長を指定する数字で構成されたパターンです。

いずれかのオペランドが片方より短い場合は、繰り返しによって拡張されて、片方のオペランドと同じ長さになります。

両方のオペランドの長さが等しい場合は、左側オペランドの各要素が、右側オペランドの対応する数値の回数だけ個別に繰り返されます。

展開した長さは、右側オペランド (通常は長さが拡張されている) の各数字の合計です。

右側オペランドの各要素 (長さ) は、1 〜 127 の数を表す {number} で置き換えることができます。

 

block 式

block 式はインターリーブ形式で使用できます。特に、スコットランド風の格子パターンのような色の配列に便利です。たとえば、ドラモンド風の配色は、次のようになります。

[G 8 R 2 G 2 R 56 G 16 B 2 G 2 B 2 G 36 R 2 G 2 R 8|]

repeat

 

左側オペランドは任意の長さのパターンです。右側オペランドは整数です。展開すると、<パターン> が <カウント> 回繰り返されます。

 

extend

 

左側オペランドは任意の長さのパターンです。右側オペランドは長さとして解釈される整数です。左側オペランドは、右側オペランドで指定された長さに補正されます。左側オペランドが目的の長さよりも短い場合は、右側の長さになるまで繰り返されます。左側オペランドの方が長い場合は、単に縮小されます。

 

concat

 

左側および右側のオペランドは、両方とも任意の長さのパターンです。結果は、左側オペランドに右側オペランドを連結したものになります。パターンが略さずに示されている場合は (1234 など)、その中の各要素間に concat 演算子が暗黙的に存在します (たとえば、1234 は 1,2,3,4 と同等)。concat 演算子は、必要な場合のみ使用します。たとえば、括弧で囲まれたオペランドを区切る必要がある場合です。

 

interleave

 

左側および右側のオペランドは、両方とも任意の長さのパターンです。いずれかのオペランドが片方より短い場合は、繰り返しによって拡張されて、片方のオペランドと同じ長さになります。その後、両方のオペランドが交互に組み合わされます。交互の組み合わせとは、左側オペランドの要素と、右側オペランドの要素 (両手の指を組んだ場合のように) が交互に並ぶことです。展開すると、左側の最初の要素、右側の最初の要素、左側の 2 番目の要素、右側の 2 番目の要素のように並びます。

 

upto

 

「-」を upto 演算子として使用できるのは、左側オペランドの最終要素が、右側の最初の要素よりも厳密に小さい場合のみです。

左側および右側のオペランドは、両方とも任意の長さのパターンです。

展開すると、左側オペランドに、左側オペランドの最終要素と右側オペランドの最初の要素に挟まれる数列が連結され、さらに右側オペランドの残りの部分が連結されます。

upto は領域内でラップアラウンドします。たとえば、7 upto 2 を展開すると、7812 になります。

upto 演算子の直後に (文字を挟まないで) 続くことができるのは、任意の個数のチェック マーク ( ' ) のみです。チェック マークが指定されている場合は、領域内で循環してから、右側オペランドに昇順に到達します。チェック マークの数は、循環する回数を示します。

 

downto

 

演算子の使用法: <パターン> downto <パターン> 短縮形: >, -

「-」を downto 演算子として使用できるのは、左側オペランドの最終要素が、右側の最初の要素よりも厳密に大きい場合のみです。

左側および右側のオペランドは、両方とも任意の長さのパターンです。

展開すると、左側オペランドに、左側オペランドの最終要素と右側オペランドの最初の要素に挟まれる数列が降順に連結され、さらに右側オペランドの残りの部分が連結されます。

downto は領域内でラップアラウンドします。たとえば、2 downto 7 を展開すると、2187 になります。

downto 演算子の直後に (文字を挟まないで) 続くことができるのは、任意の個数のチェック マーク ( ' ) のみです。チェック マークが指定されている場合は、領域内で循環してから、右側オペランドに降順に到達します。チェック マークの数は、循環する回数を示します。

 

template

 

右側および左側オペランドは、任意の長さのパターンです。

テンプレートを使用することにより、マスター パターン (左側オペランド) にテクスチャ パターン (右側オペランド) を適用し、指定の長さにすることができます。

テンプレートの最初の要素がルートになります。テンプレート数列のその他の要素はすべて、ルートとの差で表されます。たとえば、342 がテンプレート パターンの場合、最初の要素 (3) がルート (r) です。2 番目の要素 (4) は r+1、3 番目の要素 (2) は r-1 です。つまり、テンプレートは r、r+1、r-1 になります。

このテンプレートが左側オペランドの各要素に適用され、各要素の値がルートの代わりに使用されます。

値は領域内でラップアラウンドすることに注意してください。

 

palindrome

 

この演算子には、左側オペランドのみがあります。このオペランドには、任意の長さのパターンを指定できます。この式を展開すると、左側オペランドに、左側オペランドが逆方向に連結されます。

ただし、中央の要素は反復されず、結果の最終要素は自動的に削除されます。これは、palindromed を実行した数列を繰り返して、テキスタイルのドラフトから不具合を取り除く場合に不可欠です。

palindrome により作成されたワードは、「madam」のように、前からでも、後ろからでも、同じスペルになります。

 

permute

 

左側オペランドは任意の長さのパターンです。右側オペランドは置換ベクトルです。

左側オペランドは、右側オペランドの長さの整数倍の長さに拡張されます。

次に、左側オペランドが、右側オペランドの長さを単位として、その中で順序が変更されます。置換パターンの構造を使用して、パターンの単位ごとに要素が再編成されます。

たとえば、置換パターンが 312 の場合、「3 番目の要素が先頭に、最初の要素が 2 番目に、2 番目の要素が 3 番目に」なります。

 

pbox

 

左側オペランドは任意の長さのパターンです。右側オペランドは置換ベクトルです。右側オペランドの長さは、必要に応じて (縮小されるか、反復されて) 左側オペランドの長さに等しくなるように調整されます。

次に、置換パターンの構造を使用して、パターンの要素が再編成されます。

pbox を実行しても、左側オペランドのパターン長は変わりません。

 

updown

 

左側および右側のオペランドは、両方とも任意の長さのパターンです。いずれかのオペランドが片方より短い場合は、繰り返しによって拡張されて、片方のオペランドと同じ長さになります。

updown を実行すると、昇順実行と降順実行が交互に発生します。常に奇数回実行されます。展開すると、左側オペランドの最初の要素から右側オペランドの最初の要素まで昇順に実行され、続いて、そこから左側オペランドの 2 番目の要素まで降順に実行されます (以下同様)。左側オペランドの最終要素から右側オペランドの最終要素まで昇順に実行されたら、演算は完了します。

updown 演算子の直後に (文字を挟まないで) 続くことができるのは、任意の個数のチェック マーク ( ' ) のみです。チェック マークが指定されている場合は、領域内で循環してから、昇順および降順実行を完了します。チェック マークの数は、循環する回数を示します。

 

downup

 

左側および右側のオペランドは、両方とも任意の長さのパターンです。いずれかのオペランドが片方より短い場合は、繰り返しによって拡張されて、片方のオペランドと同じ長さになります。

downup を実行すると、降順実行と昇順実行が交互に発生します。常に奇数回実行されます。展開すると、左側オペランドの最初の要素から右側オペランドの最初の要素まで降順に実行され、続いて、そこから左側オペランドの 2 番目の要素まで昇順に実行されます (以下同様)。左側オペランドの最終要素から右側オペランドの最終要素まで降順に実行されたら、演算は完了します。

downup 演算子の直後に (文字を挟まないで) 続くことができるのは、任意の個数のチェック マーク ( ' ) のみです。チェック マークが指定されている場合は、領域内で循環してから、昇順および降順実行を完了します。チェック マークの数は、循環する回数を示します。

 

rotate

 

左側オペランドは任意の長さのパターンです。右側オペランドは長さとして解釈される整数です。rotate はパターンの先頭から <数値> で指定された数だけ要素を取得して、それらを末尾に移動します。負の数を指定した場合は、パターンの末尾から指定した数だけ要素を取得して、先頭に移動します。

 

reverse

 

この演算子には、左側オペランドのみがあります。このオペランドには、任意の長さのパターンを指定できます。展開すると、左側のオペランドが逆向きになります。

 

優先順位

1 つの式で複数の演算子を使用している場合は、これらの演算子は優先順位に従って評価されます。つまり、他よりも先に実行される演算子があります。次に、パターン言語の優先順位を示します。

2 つの演算子が同じ優先順位の場合、左から右の順に評価されます。

 


フィードバック
このページはお役に立ちましたか? フィードバックの送信。 (インターネット接続が必要です。)