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:32] – elisag | at:tutorial:basic [2020/02/09 22:05] (current) – elisag | ||
|---|---|---|---|
| Line 90: | Line 90: | ||
| - | ==== 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 101: | Line 109: | ||
| >a[1] | >a[1] | ||
| >>[1, 0, 0] | >>[1, 0, 0] | ||
| + | > | ||
| + | >>3 | ||
| + | >a | ||
| + | >> | ||
| </ | </ | ||
| Line 110: | Line 122: | ||
| def b[3] { i := i + 1; aux := [0,0,0]; aux[i] :=1; aux}; | def b[3] { i := i + 1; aux := [0,0,0]; aux[i] :=1; aux}; | ||
| >> | >> | ||
| - | >b[1][2] | ||
| - | >>0 | ||
| - | > | ||
| - | >>3 | ||
| - | >b | ||
| - | >> | ||
| </ | </ | ||
| + | |||
| + | You can find later in this chapter a helper function for creating matrices | ||
| + | |||
| + | |||
| ===== Functions ===== | ===== Functions ===== | ||
| Line 220: | Line 230: | ||
| >> 21 | >> 21 | ||
| </ | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| ==== Optional Parameters ==== | ==== Optional Parameters ==== | ||
| Line 233: | 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.1581273150.txt.gz · Last modified: (external edit)
