previous  next
1.2.16. First Functions
CoCoA's library of functions can be easily extended with user-defined
functions.  Longer functions are usually cut-and-pasted from a text
editor into a CoCoA session.  If the functions are to be used
repeatedly, they can be saved in a separate text file and read into a
CoCoA session with the 'Source' command (or '<<'). The usual way to
define a function is with the syntax: 

   Define < FunctionName >(< argument list >) < Commands > EndDefine;

NOTE: Variables defined within a function are usually local to that
function and disappear after the function returns.  Normally, the only
variables accessible within a function are the function's arguments
and local variables.  (For the exceptions, see the section of the
manual entitled "Global Memory.")

Example

Define Square(X)   -- a simple function
  Return X^2;
EndDefine;
Square(3);
9
-------------------------------
Define IsPrime(X)  -- a more complicated function
  If Type(X) <> INT Then Return Error('Expected INT') EndIf;
  I := 2;
  While I^2 <= X Do
    If Mod(X,I) = 0 Then Return False EndIf;
    I := I+1;
  EndWhile;
  Return TRUE;
EndDefine; -- end of function definition
IsPrime(4);
FALSE
-------------------------------
Define Test(A,B)  -- a function with two arguments
  Sum := A+B;
  Prod := A*B;
  PrintLn('The sum of ',A,' and ',B,' is ',Sum,'.');
  Print('The product of ',A,' and ',B,' is ',Prod,'.');
EndDefine;
Test(3,5);
The sum of 3 and 5 is 8.
The product of 3 and 5 is 15.
-------------------------------