From d0d6117176d68b2345d36e81ccdaa447e9caa724 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Tue, 22 Dec 2020 04:08:34 +0100 Subject: Moving to Hugo. --- .../computations/lambda_functions/_index.md | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 content/fate_v1/computations/lambda_functions/_index.md (limited to 'content/fate_v1/computations/lambda_functions/_index.md') diff --git a/content/fate_v1/computations/lambda_functions/_index.md b/content/fate_v1/computations/lambda_functions/_index.md new file mode 100644 index 0000000..35485a3 --- /dev/null +++ b/content/fate_v1/computations/lambda_functions/_index.md @@ -0,0 +1,30 @@ +--- +title: Lambda Functions +--- +Lambda functions are values that correspond to a computation not yet performed. +These can take arguments. Defining a lambda function returns the value that +corresponds to the function itself, the `eval` computation must be used to +obtain the value that the function computes. + +### DEFINITION +{{< fatecode >}}(lambda (([T0 = TYPE] {S0 = String}) ... ([TN = TYPE] {SN = String})) [COMPUTATION]){{< /fatecode >}} + +Returns a lambda function taking `S0` ... `SN` of types `T0` ... `TN` as +arguments and evaluating to `[COMPUTATION]`. + +### EVALUATION +{{< fatecode >}}(eval [REFERENCE] [C0 = COMPUTATION] ... [CN = COMPUTATION]){{< /fatecode >}} + +Returns the result of evaluating the lambda function at `[REFERENCE]` given the +parameters `C0` ... `CN`. + +## Examples +{{< fatecode >}}(lambda ( (int i) ) + (+ (var i) 1) +) +{{< /fatecode >}} + +{{< fatecode >}}(lambda ( (int i) ) + (* (eval int_to_int (var i)) 2) +) +{{< /fatecode >}} -- cgit v1.2.3-70-g09d2