at:tutorial:basic
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| at:tutorial:basic [2020/02/09 19:39] – elisag | at:tutorial:basic [2020/02/09 22:05] (current) – elisag | ||
|---|---|---|---|
| Line 93: | Line 93: | ||
| - | ==== Multidimensional | + | |
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Multidimensional | ||
| As mentioned before, there is no special constructor for definition of multidimensional tables, a table entry can contain another table. In what follows we have a closer look to manipulations with multidimensional tables. | As mentioned before, there is no special constructor for definition of multidimensional tables, a table entry can contain another table. In what follows we have a closer look to manipulations with multidimensional tables. | ||
| Line 108: | Line 113: | ||
| >a | >a | ||
| >> | >> | ||
| - | |||
| </ | </ | ||
| Line 120: | Line 124: | ||
| </ | </ | ||
| - | Finally, we can create | + | You can find later in this chapter |
| - | + | ||
| - | < | + | |
| - | def makeMatrix(n) { def col[n] {0}; def m[n] { [@col]}}; | + | |
| - | def c := makeMatrix(3); | + | |
| - | >> | + | |
| - | > | + | |
| - | >>[1, 2, 3] | + | |
| - | >c | + | |
| - | >> | + | |
| - | </ | + | |
| + | |||
| ===== Functions ===== | ===== Functions ===== | ||
| Line 235: | Line 230: | ||
| >> 21 | >> 21 | ||
| </ | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| ==== Optional Parameters ==== | ==== Optional Parameters ==== | ||
| Line 248: | Line 248: | ||
| </ | </ | ||
| - | As is customary in languages with the above parameter passing semantics, AmbientTalk requires mandatory parameters to be defined //before// optional parameters, which should in turn be defined //before// a variable-argument parameter, if any. | + | As is customary in languages with the above optional arguments, AmbientTalk requires mandatory parameters to be defined //before// optional parameters, which should in turn be defined //before// a variable-argument parameter, if any. |
| + | |||
| + | Let us show how to use optional arguments to define an auxilary function that creates matrices: | ||
| + | |||
| + | < | ||
| + | def makeMatrix(n, | ||
| + | def [i,j] := [0,0]; | ||
| + | def makeCol(i, | ||
| + | def col[m] { j := j + 1; init(i,j) } | ||
| + | }; | ||
| + | def matrix[n] { i := i + 1; makeCol(i, | ||
| + | }; | ||
| + | >def c := makeMatrix(3); | ||
| + | >> | ||
| + | >c[1] := [1,2,3] | ||
| + | >>[1, 2, 3] | ||
| + | >c | ||
| + | >> | ||
| + | >def d := makeMatrix(4, | ||
| + | {|i,j| if: (i == j) then: {1} else: {0}}); | ||
| + | >> [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] | ||
| + | </ | ||
| ===== Closures ===== | ===== Closures ===== | ||
at/tutorial/basic.1581273591.txt.gz · Last modified: (external edit)
