Example 1 – Simple increment:
function inc
{
var by = "{arg%argv:1}";
if ({#by:} == 0) var by = 1;
var result%function = "(expr){arg%value} + {by}";
}
display "2" conv=inc; // 3
display "2" conv=inc:8; // 10
var a = 2 conv=inc;
display "a is {a}<br>
"; // a is 3
var a conv=inc;
display "a is still {a}<br>
"; // a is still 3
Example 2 – Increment by reference:
function inc
{
var by = "{arg%argv:1}";
if ({#by:} == 0) var by = 1;
var result%function = "(expr){arg%value} + {by}";
if ({#arg%var:} > 0)
{
// We need to modify the variable too
parent "{arg%var}";
var argVar =& "{arg%var}";
var argVar = "{result%function}";
}
}
var a = 2 conv=inc;
display "a is {a}<br>
"; // a is 3
var a conv=inc;
display "a is now {a}<br>
"; // a is now 4
Example 3 – Increment by multiple arguments:
function inc
{
var by = "{arg%argv:1}";
if ({#by:} == 0) var by = 1;
var result%function = "(expr){arg%value} + {by}";
if ({#arg%var:} > 0)
{
// by reference
parent "{arg%var}";
var argVar =& "{arg%var}";
clear arg%argv:0; // The function name is out of the loop
foreach (arg%argv)
{
var by = "{foreach}";
if ({#by:} == 0) var by = 1;
var result%function:{foreach:key}
= "(expr){arg%value} + {by}";
}
if ({#arg%var:} > 0) var argVar = "(var)result%function";
}
}
var a = 2 conv=inc;
display "a is {a}<br>
"; // a is 3
var a conv=inc;
display "a is now {a}<br>
"; // a is now 4
var a conv=inc:10,20,30;
display "a:{a|list}<br>
"; // a:''=>'14','1'=>'14','2'=>'24','3'=>'34'
|