summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-12-22 04:08:34 +0100
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-12-22 04:08:34 +0100
commitd0d6117176d68b2345d36e81ccdaa447e9caa724 (patch)
tree6cb8f3e4735a695be8c0922434df4c60f7cf82c7 /content/fate_v1/computations/lambda_functions/_index.md
Moving to Hugo.
Diffstat (limited to 'content/fate_v1/computations/lambda_functions/_index.md')
-rw-r--r--content/fate_v1/computations/lambda_functions/_index.md30
1 files changed, 30 insertions, 0 deletions
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 >}}