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 revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
at:tutorial:basic [2020/02/09 19:25] – adding elisagat:tutorial:basic [2020/02/09 21:35] elisag
Line 85: Line 85:
 >>[2, 3, 4] >>[2, 3, 4]
 </code> </code>
 +
 +
 +
 +
 +
 +
 +
 +
 +
  
 ==== Multidimensional tables ==== ==== Multidimensional tables ====
  
-<code>+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:
  
 +<code>
 def a := [[1,0,0], [0,1,0], [0,0,1]]; def a := [[1,0,0], [0,1,0], [0,0,1]];
 >>[[1, 0, 0], [0, 1, 0], [0, 0, 1]] >>[[1, 0, 0], [0, 1, 0], [0, 0, 1]]
Line 96: Line 106:
 >a[1] >a[1]
 >>[1, 0, 0] >>[1, 0, 0]
 +>(a[1])[2] := 3;
 +>>3
 +>a
 +>>[[1, 3, 0], [0, 1, 0], [0, 0, 1]]
 </code> </code>
  
Line 104: Line 118:
 def aux[3] {0};  def aux[3] {0}; 
 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};
 +>>[[1, 0, 0], [0, 1, 0], [0, 0, 1]]
 </code> </code>
 +
 +Finally, we can define a helper function to create matrices as follows:
 +
 +<code>
 +def makeMatrix(n, m := n, init := { |i,j| 0}){
 +  def [i,j] := [0,0];
 +  def makeCol(i,j) {
 +     def col[m] { j := j + 1; init(n,m) }
 +  };
 +  def matrix[n] { i := i + 1; makeCol(i,j)}
 +};
 +def c := makeMatrix(3);
 +>>[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
 +>c[1] := [1,2,3]
 +>>[1, 2, 3]
 +>c
 +>>[[1, 2, 3], [0, 0, 0], [0, 0, 0]]
 +</code>
 +
  
 ===== Functions ===== ===== Functions =====
at/tutorial/basic.txt · Last modified: 2020/02/09 22:05 by elisag