-
Notifications
You must be signed in to change notification settings - Fork 7
Lambda
Giorgio Garofalo edited this page Oct 11, 2024
·
3 revisions
A lambda is a block of code that maps a variable amount of parameters into a single output value of any type (see the Value types section of this wiki).
Its syntax is:
param1 param2 param3:
My code
Where param1 param2 param3:
is the header of the lambda, where parameter names are defined. Their values can be accessed as if you were dealing with variables:
param1 param2 param3:
The second parameter is .param2
The header can be omitted:
- If the lambda expects 0 parameters (e.g. conditional statements)
- In any other case, the parameters become implicit and can be accessed by position via
.1
,.2
,.3
, etc.
The second parameter is .2
Lambdas are the only construct able to fork and create new scopes.
- Nested scopes inherit properties from their parent, such as defined variables and functions;
- Properties defined inside of a nested scope cannot be accessed by their parent, meaning variables defined within a lambda block do not exist outside of the lambda itself.
Example: .foreach
.foreach {2..5}
n:
The number is **.n**
With implicit parameter:
.foreach {2..5}
The number is **.1**
Example: .function
.function
's body is a lambda that accepts a variable amount of explicit parameters:
.function {area}
width height:
.multiply {width} by:{height}
- Syntax of a function call
- Declaring functions
- Dynamic typing
- Localization
- Including other Quarkdown files
- Importing external libraries
- Document metadata
- Theme
- Page format
- Page margin content
- Page counter
- Automatic page break
- Numbering
- Table of contents
- Stacks (row, column, grid)
- Align
- Container
- Box
- Collapsible
- Whitespace
- String
- Number
- Markdown content
- Boolean
- Enumeration entry
- Iterable
- Dictionary
- Range
- Lambda
- Size(s)
- Color
- Dynamic