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 [2008/03/12 17:18] – * tvcutsemat:tutorial:basic [2009/06/05 15:32] – added tvcutsem
Line 174: Line 174:
 </code> </code>
  
-In that case, the //sum// function still accepts an arbitrary number of arguments as long as two arguments are supplied. //a// and //b// are considered as mandatory arguments of the argument list. +In that case, the //sum// function still accepts an arbitrary number of arguments as long as two arguments are supplied. //a// and //b// are considered as mandatory arguments of the argument list. 
 + 
 +The splice operator can also be used to transform a table into an argument list for a function, for example: 
 +<code> 
 +def args := [3,4,5]; 
 +> sum(1,2, @args); 
 +>> 15 
 +</code> 
 + 
 +One way to think about this is that the splice operator splices the ''args'' table into the table of actual arguments. The "rest" arguments do not necessarily need to be the last parameters, for example: 
 +<code> 
 +> sum(1,2,@args,6); 
 +>> 21 
 +</code> 
 + 
 +==== Optional Parameters ====
  
 A function can also declare optional arguments as shown below. Optional arguments can be omitted in a function call. If this is the case, the default expression provided in their definition is evaluated and passed as argument to the function instead. A function can also declare optional arguments as shown below. Optional arguments can be omitted in a function call. If this is the case, the default expression provided in their definition is evaluated and passed as argument to the function instead.
Line 245: Line 260:
   def i := 0;   def i := 0;
   def mapped[tbl.length] {   def mapped[tbl.length] {
-    clo(tbl[i:=i+1])+    i := i+1
 +    clo( tbl[ i ] )
   };   };
 } }
Line 457: Line 473:
     table;     table;
   };   };
-  quickSort(table, 1, table.getLength());+  quickSort(table, 1, table.length);
 }; };
 >><closure:sort> >><closure:sort>
at/tutorial/basic.txt · Last modified: 2020/02/09 22:05 by elisag