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 [2007/04/05 10:02] elisagat:tutorial:basic [2007/04/05 11:35] elisag
Line 30: Line 30:
 ===== Tables ===== ===== Tables =====
  
-As in Pico, indexed tables represent what other languages call arrays or lists. Tables are unidimensional and their indexes range from 1 to the size of the table. As variables, one can define, assign and refer to a table. Table definition is also made  with the keyword **def** in the following form:+Indexed tables represent what other languages call arrays or lists. Tables are unidimensional and their indexes range from 1 to the size of the table. As variables, one can define, assign and refer to a table. Table definition is also made  with the keyword **def** in the following form:
 <code> <code>
 def t[ <size> ] { <expression> } def t[ <size> ] { <expression> }
Line 41: Line 41:
 >>[1, 2, 3, 4, 5] >>[1, 2, 3, 4, 5]
 </code> </code>
-Although there is no special constructor for definition of multidimensional tables, a table entry can contain another table. This is internally stored as a unidimensional table whose entries are other tables. 
  
 +Although there is no special constructor for definition of multidimensional tables, a table entry can contain another table. This is internally stored as a unidimensional table whose entries are other tables.
 <code> <code>
 >def vocals := ["a", "e", "i", "o", "u"] >def vocals := ["a", "e", "i", "o", "u"]
Line 52: Line 52:
 </code> </code>
  
-As shown in the definition of the varible "vocals", evaluating a series of comma-separated abstract grammar values between square brackets (aka a tabulation) results in a table.+As shown in the definition of the varible //vocals//, evaluating a series of comma-separated abstract grammar values between square brackets (aka a tabulation) results in a table.
  
 <code> <code>
Line 76: Line 76:
 >>25 >>25
 </code> </code>
-This example also illustrates how functions are called. Calls to functions without parameters must also include the parenthesis.+This example also illustrates how functions are called. Calls to functions without parameters must also include the parenthesis as shown below. 
 +<code> 
 +>def f(){nil} 
 +>><closure:f> 
 +>f() 
 +>>nil 
 +</code> 
 +The return value of a function is the result of the last statement executed. Functions must always return a value - i.e. they cannot be abstract. The example also illustrates how to create dumb function that doesn't do anything but returning the //nil// object
  
 Functions have access to the enclosing environment of its definition as shown in the following example.   Functions have access to the enclosing environment of its definition as shown in the following example.  
Line 153: Line 160:
 >>3 >>3
 </code> </code>
- 
at/tutorial/basic.txt · Last modified: 2020/02/09 22:05 by elisag