A.run(x1,x2,......xi)

阅读(925) 标签: 序列, 排列, 每个成员,

描述:

针对序列/排列中每个成员计算表达式,返回原序列。

语法:

A.run(x)

仅计算一个表达式。

A.run(x1,x2, ......xi)

计算多个表达式。

备注:

针对序列/排列A中每个成员计算表达式xi,计算过程中可能对A修改,最后返回修改后的A。例如xcol1=col2+1,结果将修改col1字段值。

参数:

A

序列/排列。

x

计算表达式,一般为字段名,或者由字段名组成的合法表达式,可使用"~"引用当前记录。

选项:

@m

数据量大的复杂运算中并行计算提升性能,计算次序不确定。

@z

逆向计算,仅适用于非纯序列。

返回值:

序列/排列

示例:

利用 "run" 修改成员值:

 

A

 

1

=[1,2,3,4,5]

 

2

=A1.run(~=~*~)

[1,4,9,16,25]"~"引用当前成员

利用 " run"函数实现EIDNAME的转换:

 

A

 

1

=demo.query("select * from EMPLOYEE")

 

2

=demo.query("select * from DEPARTMENT")

3

=A2.run(MANAGER=A1.select@1(EID==A2.MANAGER).NAME)

4

=demo.query("select * from EMPLOYEE")

 

5

=demo.query("select * from DEPARTMENT")

 

6

=A5.run@m(MANAGER=A4.select@1(EID==A5.MANAGER).NAME)

 

数据量大的运算中提升性能。

利用 "run" 函数实现表间关联:

 

A

 

1

=demo.query("select * from EMPLOYEE").keys(EID)

 

2

=demo.query("select * from DEPARTMENT")

 

3

=A2.run(MANAGER=A1.select@1(EID== A2.MANAGER))

4

=A2.MANAGER.STATE

California,字段值为记录时,可用点操作符逐级引用。

逆向计算:

 

A

 

1

=[1,2,3].run(~=iterate(~~+~))

[1,3,6]

2

=[1,2,3].run@z(~=iterate(~~+~))

使用@z选项,逆向计算,返回结果:[3,5,6]

 

注意:

A.(x)A.run(x)的区别:

A.(x)的目的在于计算x表达式的值,并返回该表达式的值组成的序列;

A.run(x)的目的在于通过x的运算对A做出修改,从而返回修改后的序列/排列A

相关概念:

r.run()

P.run(xi:Fi,…)