iterate()

阅读(398) 标签: iterate,

本章介绍iterate()函数的多种用法。

A.iterate()

描述:

对排列迭代循环并返回最后一个运行x的结果

语法:

A.iterate(x,a,c)

备注:

循环排列A~~上一次运算x的结果,默认初始值为aa缺省为空,返回最后一个运算x的结果。表达式c为真时提前结束。

选项:

@a

返回序列中每个成员的运算结果

参数:

A

序列/排列

x

表达式

a

初始值

c

返回true/false类型的表达式

返回值:

x的计算结果

示例:

 

A

 

1

[2,222,22,122,2222]

 

2

=A1.iterate(~*2)

4444

3

=A1.iterate@a(~*2)

[4,444,44,244,4444]

4

=A1.iterate(~~*2,3)

96

5

=A1.iterate(~~*2,5,~>500)

80

6

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

 

7

=A6.derive(A6.(AMOUNT).iterate(~~*2,5,~>20000):Cumulation)

相关概念:

iterate()

ch.iterate()

描述:

对管道中的排列迭代循环并返回最后一个运行x的结果

语法:

ch.iterate(x,a,c)

备注:

循环管道ch中的排列,~~上一次运算x的结果,默认初始值为aa缺省为空,返回最后一个运算x的结果。表达式c为真时提前结束。

参数:

ch

管道

x

表达式

a

初始值

c

返回true/false类型的表达式

返回值:

x的计算结果

示例:

 

A

 

1

=[2,222,22,122,2222]

 

2

=channel()

 

3

=channel()

 

4

=A2.iterate(~*2)

 

5

=A3.iterate(~~*2,3)

 

6

=A1.push(A2,A3)

 

7

=A2.result()

4444

8

=A3.result()

96

9

=[100,200,800,2000]

 

10

=channel()

 

11

=A10.iterate(~~*3,10,~>250)

 

12

=A9.push(A10)

 

13

=A10.result()

90

 

cs.iterate()

描述:

对游标中的排列迭代循环并返回最后一个运行x的结果

语法:

cs.iterate(x,a,c)

备注:

循环游标cs中的排列,~~上一次运算x的结果,默认初始值为aa缺省为空,返回最后一个运算x的结果。表达式c为真时提前结束。

参数:

cs

游标

x

表达式

a

初始值

c

返回true/false类型的表达式

返回值:

x的计算结果

示例:

 

A

 

1

=[2,222,22,122,2222].cursor()

 

2

=A1.iterate(~*2)

4444

3

=[2,222,22,122,2222].cursor().iterate(~~*2,3)

96

4

=[2,222,22,122,2222].cursor().iterate(~~*2,5,~>500)

80

5

=demo.cursor("select * from SALES")

 

6

=A5.(AMOUNT).iterate(~~*2,5,~>20000)

40

 

iterate()

描述:

循环函数中迭代运算

语法:

iterate(x,a;Gi,…)

备注:

用于循环函数中,计算~~=x返回,当字段Gi发生变化时令~~=ax是含有~~的表达式,Gi可省略,a省略为null

参数:

x

含有~~的表达式

a

初始值

Gi

字段名

返回值:

x的计算结果

示例:

 

A

 

1

=demo.query("select top 7 * from SCORES ")

 

2

=A1.groups(CLASS:Class,STUDENTID:StudentID;iterate(~~*2): Score1)

3

=A1.groups(CLASS:Class,STUDENTID:StudentID;iterate(~~*2,10): Score1)

4

=A1.derive(iterate(~~*2,10;STUDENTID):F1)

相关概念:

A.iterate()