添字付きリストを常にリストにすることを強制しますか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />これがコードスニペットです。
a = {"A"、"B"、"C"、"D"、123};
sub1 = list(1,3,5);
sub2 = list(1);
show(a [sub 1]);
show(a [sub 2]);
出力:
a [1] = {"A"、"C"、123};
a [2] =“ A”。
任意の数の要素を持つリストを購読する方法はありますか。また、常に出力はリストになりますか。
Re:添字付きリストを常にリストにするよう強制するのですか?こんにちはマーティン、
これはJMP 13用に「修正」しているものです。レガシースクリプトの中には古い動作に依存している可能性があり、修正を中断と見なす可能性があるため、引用符で囲んで「修正」を付けます。それが大きな問題であることが判明したら、代替案を見つけなければならないかもしれません。
私修正のアイデアを支持するあなたのメッセージを見るのは良いことです。
Re:添字付きリストを常にリストにするよう強制するのですか?これはリストのリストに作用するより良いものです。
a = {{"A"}、{"B"}、{"C"}、{"D"}、{123}}。
sub1 = list(1,3,5);
sub2 = list(1);
ForceList =関数({forceme}、
If(Is List(forceme)、forceme、EvalList(リスト(forceme)))
;
SubscriptList = Function({inlist、subscriptlist}、
(N項目(添え字リスト)== 1の場合)
EvalList(List(inlist [subscriptlist]))
、
inlist [添え字リスト]
)
;
出力:
show(ForceList(a [sub 1]));
show(ForceList(a [sub 2]));
{{"A"}、{"C"}、{123}};
{"A"};
show(SubscriptList(a、sub1));
show(SubscriptList(a、sub2));
{{"A"}、{"C"}、{123}};
{{"A"}};
Re:添字付きリストを常にリストにするよう強制するのですか?ええ、それは私が考え出したようなものです。私は添え字付きリストで使えると思う単純な "ヘルパー関数"を書きました。ありがとうございます。
ForceList =関数({forceme}、
If(Is List(forceme)、forceme、EvalList(リスト(forceme)))
;
show(ForceList(a [sub 1]));
show(ForceList(a [sub 2]));
出力:
{"A"、"C"、123};
{"A"};
Re:添字付きリストを常にリストにするよう強制するのですか?添え字が1つの値しか持たない場合、それは常に単一の値を返します。添え字が複数の値を持つリストである場合は、すべての値をリストの形式で返します。
これを回避するには、添え字リストに含まれる値の数をチェックし、添え字に1つの値しかない場合は戻り値をラップするIf文が必要です。
これが私がまとめた例です。
ある = { "A" 、 "B" 、 "C" 、 "D" 、 123 } ;
sub1 = リスト ( 1 、 3 、 5 ) ;
sub2 = リスト ( 1 ) ;
評価 ( 評価エキス ( indicesList = { 経験値 ( sub1 ) 、経験値 ( sub2 )} ) ) ;
にとって ( 私 = 1 、私 <= N個のアイテム ( indicesList ) 、私 ++、
もし ( N個のアイテム ( indicesList [ 私 ] ) > 1 、
臨時雇用者 = ある [ indicesList [ 私 ]] 、
臨時雇用者 = 評価 ( 評価エキス ( リスト ( 経験値 ( ある [ indicesList [ 私 ]] ) ) ) )
) ;
見せる ( 臨時雇用者 ) ;
) ;