本章介绍conj()的多种用法。
描述:
计算序列成员的和列
语法:
备注:
计算序列A中各个序列成员的和列。有参数x时,循环计算表达式x后再进行和列。
选项:
@r |
递归计算到所有成员都不再是序列为止 |
@v |
A的成员为纯序列/纯序表时返回纯序列 |
参数:
A |
序列,其成员为序列 |
x |
表达式,可省略 |
返回值:
序列
示例:
A成员为序列
|
A |
|
1 |
=[[1,2,3],[4,5,6]].conj() |
返回结果:[1,2,3,4,5,6] |
2 |
=[[1,[2,3]],[2,5,6]].conj() |
返回结果:[1,[2,3],2,5,6] |
3 |
=[[1,2,3],[3],[7]].conj() |
返回结果:[1,2,3,3,7] |
4 |
=[[1,[2,3]],[2,5,6]].conj@r() |
使用@r选项,递归计算到所有成员不再是序列为止,返回结果:[1,2,3,2,5,6] |
A成员为序表/排列
|
A |
|
1 |
=demo.query("select top 4 EID,NAME,GENDER from EMPLOYEE where GENDER = 'M' ") |
|
2 |
=demo.query("select top 4 EID,NAME,GENDER from EMPLOYEE where GENDER = 'F' ") |
|
3 |
=[A1,A2].conj() |
计算[A1,A2]序列的和列,返回结果: |
4 |
=[A1,A2].conj(~.(NAME)) |
计算[A1,A2]序列中NAME和列,返回结果: ["Matthew","Ryan","Jacob","Daniel","Rebecca","Ashley","Rachel","Emily"] |
|
A |
|
1 |
=[1,2,3].i() |
返回纯序列 |
2 |
=[4,5].i() |
返回纯序列 |
3 |
=[A1,A2].conj@v() |
使用@v选项,返回纯序列 |
4 |
=ifpure(A3) |
返回true, 判断A3是否为纯序列 |
描述:
拆分管道中的记录后,将拆分结果并集返回成管道。
语法:
ch.conj(…)
备注:
根据表达式…,用管道ch中的记录执行运算,将每一条记录拆分为序列或排列,并取得拆分结果中成员或记录的并集,返回成管道。
参数:
ch |
管道 |
… |
返回排列(序表)的表达式 |
返回值:
管道
示例:
|
A |
|
1 |
=demo.cursor("select * from GYMNASTICSWOMEN") |
GYMNASTICSWOMEN表内容如上图 |
2 |
=channel() |
创建管道 |
3 |
=A2.conj(create(ID,NAME,COUNTRY,SUBJECT,SCORES).record([ID,NAME,COUNTRY,"VAULT",VAULT,ID,NAME,COUNTRY, "UNEVENBARS",UNEVENBARS, ID,NAME,COUNTRY,"BALANCEBEAM",BALANCEBEAM,ID,NAME, COUNTRY,"FLOOR",FLOOR])) |
将A2管道中的记录拆分成序列,并将拆分后记录的并集返回成管道 |
3 |
=A2.fetch() |
A2管道附加结果集函数ch.fetch(),保留管道当前数据 |
4 |
=A1.push(A2) |
将游标A1中的数据推送至管道,但此时数据并不会立即进入到管道。A1执行fetch()时程序才会执行管道中的计算,游标中的数据才真正被推送到管道。 |
5 |
=A1.fetch() |
|
6 |
=A2.result() |
|
描述:
拆分游标中的记录并将拆分结果并集,返回原游标。
语法:
cs.conj(…)
备注:
根据表达式…,用游标cs中的记录执行运算,将每一条记录拆分为序列或排列,并将拆分结果中的成员或记录并在一起,返回原游标。
参数:
cs |
游标/多路游标 |
… |
返回排列(序表)的表达式 |
返回值:
原游标cs
示例:
|
A |
|
1 |
=demo.cursor("select * from GYMNASTICSWOMEN") |
GYMNASTICSWOMEN表内容如上图 |
2 |
=A1.conj(create(ID,NAME,COUNTRY,SUBJECT,SCORES).record([ID,NAME,COUNTRY,"VAULT",VAULT,ID,NAME,COUNTRY, "UNEVENBARS",UNEVENBARS,ID,NAME,COUNTRY, "BALANCEBEAM",BALANCEBEAM,ID,NAME,COUNTRY,"FLOOR",FLOOR])) |
|
3 |
=A2.fetch() |
|
描述:
纵向连接游标序列并返回游标。
语法:
CS.conj()
备注:
CS是游标组成的序列,针对其成员做纵向连接,结果返回游标,相当于合并游标中的数据。游标序列中各个游标的结构必须相同。
参数:
CS |
游标组成的序列 |
返回值:
游标
示例:
|
A |
B |
|
1 |
=directory@p("D://txt//") |
=[] |
txt文件夹中3个文件内容如下: |
2 |
for A1.len() |
|
|
3 |
|
=file(A1(A2)) |
|
4 |
|
=B3.cursor@t() |
|
5 |
|
>B1=B1|B4 |
将游标序列保存至B1 |
6 |
=B1.conj() |
|
纵向连接游标序列 |
7 |
=A6.fetch() |
|
游标中取数 |
相关概念:
描述:
语法:
T.conj(…)
备注:
根据表达式…,用虚表T中的记录执行运算,将每一条记录拆分为序列或排列,并将拆分结果中的成员或记录并在一起返回新虚表。
参数:
T |
虚表 |
… |
返回排列(序表)的表达式 |
返回值:
虚表
示例:
|
A |
|
1 |
=create(file).record(["gymn.ctx"]) |
gymn.ctx组表内容如下: |
2 |
=pseudo(A1) |
返回虚表对象 |
3 |
=A2.conj(create(ID,NAME,COUNTRY,SUBJECT,SCORES).record([ID,NAME,COUNTRY ,"VAULT",VAULT,ID,NAME,COUNTRY,"UNEVENBARS",UNEVENBARS ,ID,NAME,COUNTRY,"BALANCEBEAM",BALANCEBEAM,ID,NAME,COUNTRY,"FLOOR",FLOOR])) |
拆分虚表中的记录并将拆分结果并集 |
4 |
=A3.import() |
A3返回的虚表内容如下: |