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 [2011/05/23 13:43] tvcutsemat:tutorial:basic [2020/02/09 19:37] elisag
Line 66: Line 66:
 >>[1, [1, 2, ["a", "e", "i", "o", "u"], 4, 5], "ambientTalk"] >>[1, [1, 2, ["a", "e", "i", "o", "u"], 4, 5], "ambientTalk"]
 </code> </code>
 +
  
 ==== Table Splicing ==== ==== Table Splicing ====
Line 84: Line 85:
 >>[2, 3, 4] >>[2, 3, 4]
 </code> </code>
 +
 +
 +
 +
 +
 +
 +
 +==== 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:
 +
 +<code>
 +def a := [[1,0,0], [0,1,0], [0,0,1]];
 +>>[[1, 0, 0], [0, 1, 0], [0, 0, 1]]
 +>a[1][2]
 +>>0
 +>a[1]
 +>>[1, 0, 0]
 +</code>
 +
 +An implicit definition of the same table can be expressed as follows:
 +
 +<code>
 +def i := 0;
 +def aux[3] {0}; 
 +def b[3] { i := i + 1; aux := [0,0,0]; aux[i] :=1; aux};
 +>>[[1, 0, 0], [0, 1, 0], [0, 0, 1]]
 +>b[1][2]
 +>>0
 +</code>
 +
 +Finally, we can create a function for nXn tables as follows:
 +
 +<code>
 +def makeMatrix(n) { def col[n] {0}; def m[n] { [@col]}};
 +def c := makeMatrix(3);
 +>>[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
 +>(c[1])[2] := 3;
 +>>3
 +>c
 +>>[[1, 3, 0], [0, 1, 0], [0, 0, 1]]
 +>c[2] := [1,2,3]
 +>>[1, 2, 3]
 +>c
 +>>[[1, 3, 0], [1, 2, 3], [0, 0, 1]]
 +</code>
 +
  
 ===== Functions ===== ===== Functions =====
Line 296: Line 344:
  
 The basic data types in AmbientTalk are numbers (i.e. integers), fractions (i.e. double precision floating point numbers), text (i.e. strings), tables (i.e. arrays) and booleans. In fact, instances of these data types are nothing but objects and as such, they respond to a variety of native methods. Objects will be the subject of the next chapter of the tutorial. This section explains the basic data types and includes some examples how to manipulate them. The complete list of methods can be found in the language reference. The basic data types in AmbientTalk are numbers (i.e. integers), fractions (i.e. double precision floating point numbers), text (i.e. strings), tables (i.e. arrays) and booleans. In fact, instances of these data types are nothing but objects and as such, they respond to a variety of native methods. Objects will be the subject of the next chapter of the tutorial. This section explains the basic data types and includes some examples how to manipulate them. The complete list of methods can be found in the language reference.
 +
 +
  
 ==== Numerical data types ==== ==== Numerical data types ====
Line 328: Line 378:
 Numbers also support some useful iterator methods such as: Numbers also support some useful iterator methods such as:
 <code> <code>
->6.to: 0 step: 2 do: { |i| system.println(i) }+>1.to: 5 do: { |i| system.println(i)} 
 +
 +
 +
 +
 +
 +>1.to: 5 step: 2 do: { |i| system.println(i)} 
 +
 +
 +
 +>6.downTo: 0 step: 2 do: { |i| system.println(i) }
 6 6
 4 4
 2 2
 +0
 >>nil  >>nil 
 >3.doTimes: { |i| system.println(i) } >3.doTimes: { |i| system.println(i) }
at/tutorial/basic.txt · Last modified: 2020/02/09 22:05 by elisag