at:tutorial:basic
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
at:tutorial:basic [2007/04/05 11:35] – elisag | at:tutorial:basic [2007/04/05 12:00] – elisag | ||
---|---|---|---|
Line 144: | Line 144: | ||
</ | </ | ||
- | ===== Blocks | + | |
+ | ===== Closures | ||
The function name can also be used just to refer the function but without calling it. TODO! | The function name can also be used just to refer the function but without calling it. TODO! | ||
- | Unlike Pico, AmbientTalk doesn' | + | ===== Blocks ===== |
+ | In AmbientTalk, | ||
+ | < | ||
+ | { | < | ||
+ | </ | ||
+ | If the block do not require any parameter, the |< | ||
+ | < | ||
+ | >{| a, b| a+ b} (3,2) | ||
+ | >>5 | ||
+ | </ | ||
+ | Note that the argument list passed to the block can define the different types of arguments previously explained. | ||
+ | < | ||
+ | >{ |a, b, @rest| def total := a + b; foreach: { |el| total := total + el} in: rest; total }(1,2,3) | ||
+ | >>6 | ||
+ | </ | ||
+ | AmbientTalk doesn’t support function assigment. However, one can assign blocks to variables. In order to call the block the name of the variable must be used. If the block defined parameters, these are required to the call as argument list. What follows is an example of such manipulation: | ||
< | < | ||
- | > | + | > |
- | >>0 | + | >>< |
- | >sum := sum + 1 | + | >square(1,2) |
- | >>1 | + | |
- | > | + | |
- | >>nil | + | |
- | >sum(1,2) | + | |
>>3 | >>3 | ||
</ | </ |
at/tutorial/basic.txt · Last modified: 2020/02/09 22:05 by elisag