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]