リストの添え字は、リストから指定した項目を抽出します。リスト内の複数の項目を戻すには、リストを添え字として使用します。
メモ: JSLは1 からカウントを始めるため、リストの最初の要素は[1]となることに注意してください。他の一部の言語のように[0] とはなりません。
リストaには4つの項目が含まれます。
a = {"bob", 4, [1, 2, 3], {x, y, z}};
Show( a[1] );
a[1] = "bob";
Show( a[{1, 3}] );
a[{1, 3}] = {"bob", [1, 2, 3]};
a[2] = 5; // リストの2番目の項目に5を割り当てる
添え字は、リスト内の項目の選択または変更にも使用できます。
Show( a );
a = {"bob", 5, [1, 2, 3], {x, y, z}};
c = {1, 2, 3};
c[{1, 2}] = {4, 4};
// c[{1, 2}] はどちらも4となる
Show( c );
c = {4, 4, 3};
割り当てのリストや関数のリストの場合は、添え字に引用符付きの名前を使用できます。
x={sqrt( 4 ), log( 3 )};
xx= {a = 1, b = 3, c = 5};
x["sqrt"];
4
xx["b"];
3
変数名は引用符で囲む必要があります。そうでないと、JMPは指定された変数を評価して、その値を使ってしまいます。次の例では、リスト内のaの値ではなく、リスト内の2番目の項目の値が戻されます。
a = 2;
Show( xx[a] );
xx[a] = b = 3;
メモ:
• 次のような状況では、左側に複数の添え字(たとえば、a[i][j] = value、ここでaは添え字可能な項目のリストを含む)を置くことができます。
– 一番外側のレベル以外はすべてリストでなければなりません。前述の例では、aがリストでなければならず、a[i]は添え字可能なものであれば何でもかまいません。
– 最後の添え字を除いて、添え字はすべて数値でなければなりません。前述の例では、iが数値でなければならず、jは行列またはリストでもかまいません。
• 添え字は入れ子構造のどのレベルに対しても実行できます。例:
a[i][j][k][l][m][n] = 99;
メモ: 式タイプの列に格納されている行列の値を取得するには、:Discrim Data Matrix[row()][i]のように二重添え字を使用します。