リストにおける演算

リストにおける演算には 2 種類あります。

演算の対象がリストとリスト以外の値の場合は、リスト以外の値がリストの各要素とペアになります。

次の表に、並列演算子と順列演算子を示します。

並列演算子

順列演算子

意味

*

**

乗算

/

*/

除算

+

*+

加算

-

*-

減算

>

*>

より大きい

<

*<

より小さい

>=

*>=

以上

<=

*<=

以下

=

*=

等しい

!=

*!=

等しくない

次の表に、並列演算子と順列演算子の違いを示します。

演算

ステートメント

結果

並列演算による連結

"A":"B":"C"+"1":"2":"3"

"A":"B":"C"+"1":"2"

"A":"B":"C"+"1"

"A1":"B2":"C3"

"A1":"B2":"C2"

"A1":"B1":C1"

順列演算による連結

"A":"B":"C"*+"1":"2":"3"

"A":"B":"C"*+"1":"2"

"A1":"A2":"A3":"B1":"B2":"B3":"C1":"C2":"C3"

"A1":"A2":"B1":"B2":"C1":"C2"

並列演算による加算

1:2:3+10:20:30

1:2:3+10:20

1:2:3+10

11:22:33

11:22:23

11:12:13

順列演算による加算

1:2:3*+10:20:30

1:2:3*+10:20

11:21:31:12:22:32:13:23:33

11:21:12:22:13:23

並列演算による文字列の等価検査

"A":"B":"C"="B":"C":"A"

"A":"B":"C"="B":"C"

"B":"B":"C"="B":"C"

0 False

1 True

1

順列演算による文字列の等価検査

"A":"B":"C"*="B":"C":"A"

"A":"B":"C"*="B":"C"

"B":"B":"C"*="D":"E"

1

1

0

並列演算による数値の等価検査

1:2:3=2:3:1

1:2:3=2:3

2:3:3=2:3

2:3:3=3:1

0

1

1

0

順列演算による数値の等価検査

1:2:3*=2:3:1

1:2:3*=2:3

1:2:3*=4:5

1

1

0

並列演算による日付の等価検査

[1-1-90]:[2-2-90]:[3-3-90]=

[3-3-90]:[2-2-90]:[1-1-90]

[1-1-90]:[2-2-90]:[3-3-90]=

[2-2-90]:[3-3-90]

[2-2-90]:[3-3-90]:[3-3-90]=

[2-2-90]:[3-3-90]

1

1

1

順列演算による日付の等価検査

[1-1-90]:[2-2-90]:[3-3-90]*=

[3-3-90]:[2-2-90]:[1-1-90]

[1-1-90]:[2-2-90]:[3-3-90]*=

[2-2-90]:[3-3-90]

[1-1-90]:[2-2-90]:[3-3-90]*=

[4-4-90]:[5-5-90]

1

1

0

結果

上記のルールにより、意外な結果となる場合があります。例えば、A=B と A!=B の両方の式が同時に true となる可能性があります。 それは、例えば A の値が 1:2 で、B の値が 1:3 である場合です。この場合、1 と 1 がペアとして比較され、2 と 3 がペアとして比較されます。最初のペアは等しいため、A=B は true になります。2 番目のペアは等しくないため、A!=B も true になります。リストに対して処理を行う場合、A=B の逆は !(A=B) です。