3.2.1 Function Structure

Function structure must obey the following format
function [y1,...,yn]=foo(x1,...,xm)
where foo is the function name, the xi are the $ m$ input arguments of the function, the yj are the $ n$ output arguments from the function, and the three vertical dots represent the list of instructions performed by the function. An example of a function which calculates $ k!$ is as follows
function [x]=fact(k)
  if k<1 then k=1,end
  for j=1:k,x=x*j;end
If this function is contained in a file called fact.sci the function must be ``loaded'' into Scilab by the exec or getf command and before it can be used:
--> exists('fact')
 ans       =
--> exec('../macros/fact.sci',-1);
--> exists('fact')
 ans       =
--> x=fact(5)
 x         =
In the above Scilab session, the command exists indicates that fact is not in the environment (by the 0 answer to exist). The function is loaded into the environment using exec and now exists indicates that the function is there (the $ 1$ answer). The example calculates $ 5!$.