Namelists
The right argument and the result of a function may be specified in the function header by a single name or by a Namelist. In this context, a Namelist is a blank-delimited list of names surrounded by a single set of parentheses.
Names specified in a Namelist are automatically local to the function; there is no need to localise them explicitly using semi-colons.
If the right argument of a function is declared as a Namelist, the function will only accept a right argument that is a vector whose length is the same as the number of names in the Namelist. Calling the function with any other argument will result in a LENGTH ERROR
in the calling statement. Otherwise, the elements of the argument are assigned to the names in the Namelist in the specified order.
Example
∇ IDN←Date2IDN(Year Month Day)
[1] 'Year is ',⍕Year
[2] 'Month is ',⍕Month
[3] 'Day is ',⍕Day
[4] ...
∇
Date2IDN 2004 4 30
Year is 2004
Month is 4
Day is 30
Date2IDN 2004 4
LENGTH ERROR
Date2IDN 2004 4
^
Note that if you specify a single name in the Namelist, the function may be called only with a 1-element vector right argument. If the result of a function is declared as a Namelist, the values of the names will automatically be stranded together in the specified order and returned as the result of the function when the function terminates.
Example
∇ (Year Month Day)←Birthday age
[1] Year←1949+age
[2] Month←4
[3] Day←30
∇
Birthday 50
1999 4 30