强制下标列表总是列表?<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);
显示(一个[SUB1]);
显示(一个[SUB2]);
输出:
a [sub1] = {“A”,“C”,123};
a [sub2] =“A”;
是否有某种方式使用任意数量的元素下载列表,并始终将输出作为列表?
Re:强制下标列表总是列表?嗨马丁,
这是我们为JMP 13“修复”的事情。我将“修复”放在引号中,因为某些遗留脚本可能依赖于旧行为,并认为修复是一个中断。如果这被证明是一个大问题,我们可能必须找到一个替代方案。
一世很高兴看到你的消息支持修复的想法。
Re:强制下标列表总是列表?这是一个更好的列表列表。
A = {{ “A”},{ “B”},{ “C”},{ “d”},{123}};
sub1 = list(1,3,5);
sub2 = list(1);
ForceList = Function({forceme},
如果(Is List(forceme),forceme,EvalList(List(forceme)))
);
SubscriptList = Function({inlist,subscriptlist},
if(N items(subscriptlist)== 1,
EvalList(列表(INLIST [subscriptlist]))
,
INLIST [subscriptlist]
)
);
输出:
show(ForceList(a [sub1]));
show(ForceList(a [sub2]));
{{“A”},{“C”},{123}};
{“一个”};
show(SubscriptList(a,sub1));
show(SubscriptList(a,sub2));
{{“A”},{“C”},{123}};
{{“一个”}};
Re:强制下标列表总是列表?是的,这就是我的想法。我写了一个简单的“辅助函数”,我认为我可以在下载列表中使用它。谢谢!
ForceList = Function({forceme},
如果(Is List(forceme),forceme,EvalList(List(forceme)))
);
show(ForceList(a [sub1]));
show(ForceList(a [sub2]));
输出:
{“A”,“C”,123};
{“一个”};
Re:强制下标列表总是列表?当您的下标只有一个值时,它总是返回单个值。如果您的下标是具有多个值的列表,则它将以列表的形式返回所有值。
为了解决这个问题,你需要一个If语句来检查你的下标列表中有多少值,如果下标只有一个值,则包装返回值。
这是我放在一起的一个例子:
一个 = { “一个” , “B” , “C” , “d” , 123 } ;
SUB1 = 名单 ( 1 , 3 ,五 ) ;
SUB2 = 名单 ( 1 ) ;
EVAL ( Eval Expr ( indicesList = { EXPR ( SUB1 ) , EXPR ( SUB2 )} ) ) ;
对于 ( 一世 = 1 ,一世 <= N项 ( indicesList ) ,一世 ++,
如果 ( N项 ( indicesList [ 一世 ] ) > 1 ,
温度 = 一个 [ indicesList [ 一世 ]] ,
温度 = EVAL ( Eval Expr ( 名单 ( EXPR ( 一个 [ indicesList [ 一世 ]] ) ) ) )
) ;
节目 ( 温度 ) ;
) ;