conj()

阅读(1905) 标签: conj,

本章介绍conj()的多种用法。

A.conj(x)

描述:

计算序列成员的和列

语法:

A.conj(x)

备注:

计算序列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.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.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.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()

 

游标中取数

相关概念:

A.merge()

CS.merge()

T.conj()

描述:

拆分虚表中的记录并将拆分结果并集

语法:

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返回的虚表内容如下: