User Tools

Site Tools


at:tutorial:basic

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
at:tutorial:basic [2020/02/09 21:52]
elisag
at:tutorial:basic [2020/02/09 22:05] (current)
elisag
Line 97: Line 97:
  
  
-==== Multidimensional tables ====+ 
 +==== 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.  Consider a multidimensional table which is extensionally defined as follows: 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.  Consider a multidimensional table which is extensionally defined as follows:
Line 229: Line 230:
 >> 21 >> 21
 </code> </code>
 +
 +
 +
 +
  
  
Line 245: Line 250:
 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. 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 as follows:+Let us show how to use optional arguments to define an auxilary function that creates matrices:
  
 <code> <code>
Line 251: Line 256:
   def [i,j] := [0,0];   def [i,j] := [0,0];
   def makeCol(i,j) {   def makeCol(i,j) {
-     def col[m] { j := j + 1; init(n,m) }+     def col[m] { j := j + 1; init(i,j) }
   };   };
   def matrix[n] { i := i + 1; makeCol(i,j)}   def matrix[n] { i := i + 1; makeCol(i,j)}
 }; };
-def b := makeMatrix(2,4, {|i,j| object: { def occupied := false }}); 
->((b[2])[4]).occupied := true 
->>true 
->(h[2]).each: {|e| system.print(" " + e.occupied)} 
->> false false false true 
 >def c := makeMatrix(3); >def c := makeMatrix(3);
 >>[[0, 0, 0], [0, 0, 0], [0, 0, 0]] >>[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
Line 266: Line 266:
 >c >c
 >>[[1, 2, 3], [0, 0, 0], [0, 0, 0]] >>[[1, 2, 3], [0, 0, 0], [0, 0, 0]]
 +>def d := makeMatrix(4,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]]
 </code> </code>
  
at/tutorial/basic.1581281557.txt.gz · Last modified: 2020/02/09 21:53 (external edit)