Lambda表达式

Lambda 表达式是只有一个语句的函数。

语法

def <functionName>(parameters): expression

def (parameters): expression

def (parameters) -> expression

parameter -> expression

详情

请注意语法中的第二种情况和第三种情况也使用了匿名函数。第四种情况的语法只有在仅含有一个参数的时候才生效。

例子

$ def f(x):x pow 2 + 3*x + 4.0;
$ f(2);
14

$ def orderby(x,y): x[isort y];
$ t=table(3 1 7 as id, 7 4 9 as value);
$ orderby(t, t.id);

id

value

1

4

3

7

7

9

$ each(def(a,b):a+b, 1..10, 2..11);
[3,5,7,9,11,13,15,17,19,21]

$ g = def (x,y) -> log(x) + y pow 2;
$ g(e,0);
1

$ each(x->x+1,1 3 5)
[2,4,6]