return
return (each block), keyword
At the end of an each
block, the return
statement specifies the value to be returned.
table T = extend.range(5) factorial = 1T.Factorial = each T scan auto keep factorial factorial = factorial * T.N return factorial show table "Factorials" a1b5 with T.N, T.Factorial1
2
3
4
5
6
7
8
9
This return
statement supports tuple values.
table T = extend.range(5) sum = 0factorial = 1T.Sum, T.Factorial = each T scan auto keep sum keep factorial sum = sum + T.N factorial = factorial * T.N return (sum, factorial) show table "Factorials" a1b5 with T.N, T.Sum, T.Factorial1
2
3
4
5
6
7
8
9
10
11
12
return each, shorthand syntax
At the end of an each
block, the return each
syntax returns a vector value obtained through the execution of the each
block.
table AB[ab] = with [| as ab |] [| "A" |] [| "B" |] table XY[xy] = with [| as xy |] [| "X" |] [| "Y" |] table C = cross(AB, XY)C.AplusB = each AB return each XY return concat(ab into Scalar, xy into Scalar) show table "A+B" a1b6 with C.AplusB, ab, xy1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
In the above script, return each
is used to return a vector that belongs to the table XY
for every line of the table AB
. This script is equivalent the more verbose variant given below:
table AB[ab] = with [| as ab |] [| "A" |] [| "B" |] table XY[xy] = with [| as xy |] [| "X" |] [| "Y" |] table C = cross(AB, XY)C.AplusB = each AB XY.AplusB = each XY return concat(ab into Scalar, xy into Scalar) return XY.AplusB show table "A+B" a1b6 with C.AplusB, ab, xy1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
return (autodiff block), keyword
At the end of an autodiff
block, the return
statement specifies the loss associated to the step of the stochastic gradient descent. The loss must be a number.
autodiff Scalar epochs: 500 learningRate: 0.1 with params a auto s = a * a return s show scalar "" with a // 0.001
2
3
4
5
6
This return
statement supports tuple values. However, only the first value gets interpreted as the loss. The other values, after the first, must been numbers too, and are interpreted as metrics for reporting only.
return (user-defined function), keyword
At the end of a def
block, the return statement
specifies the value to be returned by the function or the process.
def pure square(x : number) with return x * x show scalar "3^2" with square(3) // '9'1
2
3
4