在相邻区间内查找和筛选

 

相邻区间是指某个成员周围的其它成员构成的区间。

 

举例

例 1

有一个数字序列,想要找出数字10以后出现的第一个奇数。

编写SPL脚本:


A

1

[10,2,4,3,10,3,8,7,10,8,3,10,6,4,7]

2

=A1.(if(~==10,~[1:].select@1(~%2==1)))

3

=A2.select(~)

A1   数字序列

A2   循环A1的每个数,计算:如果当前数是10,则从它后面的数中选出第1个奇数。其中~[1:]表示当前数的下一个到最后一个组成的序列,选项@1表示选出满足条件的第1个。当前数不是10则返回null

A3   选出A2中不是null的数字

 

例 2

有一个数字序列由12组成,想要统计第1个数字1以后有多少个2

编写SPL脚本:


A

1

[2,2,1,1,2,1,1,2,2]

2

=A1.to(A1.pselect(~==1),).count(~==2)

A1   数字序列

A2   统计第1个数字1以后数字2的个数,A1.pselect(~==1)是选出第1个数字1的序号,to函数是选出从这个序号开始直到A1序列最后的数字。