FUNCTION-Anweisung

Syntax

FUNCTION [name] [ ( [MAT] variable [ , [MAT] variable ...] ) ]

Beschreibung

Verwenden Sie die FUNCTION-Anweisung, um eine vom Benutzer geschriebene Funktion zu identifizieren und die Anzahl und Namen der Argumente anzugeben, die ihr übergeben werden sollen. Die FUNCTION-Anweisung muss die erste Zeile sein, die kein Kommentar innerhalb der vom Benutzer geschriebenen Funktion ist. Eine vom Benutzer geschriebene Funktion kann nur eine FUNCTION-Anweisung enthalten.

name wird zu Dokumentationszwecken angegeben; er muss nicht mit dem Funktionsnamen oder dem Namen übereinstimmen, mit dem die Funktion im aufrufenden Programm referenziert wird. name kann jeder gültige Variablenname sein.

variable ist ein Ausdruck, der Werte zwischen den aufrufenden Programmen und der Funktion weitergibt. variablen sind die formalen Parameter der vom Benutzer geschriebenen Funktion. Wenn Ist-Parameter als Argumente für eine vom Benutzer geschriebene Funktion angegeben werden, werden die Ist-Parameter durch die formalen Parameter referenziert, so dass die in der vom Benutzer geschriebenen Funktion durchgeführten Berechnungen die Ist-Parameter verwenden.

Trennen Sie Variablen durch Kommata. Bis zu 254 Variablen können an eine vom Benutzer geschriebene Funktion übergeben werden. Um ein Array zu übergeben, müssen Sie dem Array-Namen das Schlüsselwort MAT voranstellen. Wenn eine vom Benutzer geschriebene Funktion aufgerufen wird, muss die aufrufende Funktion die gleiche Anzahl von Variablen angeben, die in der FUNCTION-Anweisung angegeben sind.

Eine zusätzliche Variable wird ausgeblendet, damit die vom Benutzer geschriebene Funktion sie verwenden kann, um einen Wert zurückzugeben. Eine zusätzliche Variable wird von der vom Benutzer geschriebenen Funktion beibehalten, so dass ein Wert durch die RETURN-Anweisung(value) zurückgegeben wird. Diese zusätzliche Variable wird von den Befehlen MAP und MAKE.MAP.FILE gemeldet. Wenn Sie die RETURN-Anweisung in einer vom Benutzer geschriebenen Funktion verwenden und keinen Rückgabewert angeben, wird standardmäßig eine leere Zeichenfolge zurückgegeben.

Das Programm, das eine vom Benutzer geschriebene Funktion aufruft, muss eine DEFFUN-Anweisung enthalten, die die vom Benutzer geschriebene Funktion definiert, bevor es sie verwendet. Die vom Benutzer geschriebene Funktion muss entweder in einem lokalen Katalog oder im Systemkatalog katalogisiert sein, oder sie muss ein Eintrag in derselben Objektdatei wie das aufrufende Programm sein.

Wenn die benutzerdefinierte Funktion sich selbst innerhalb der Funktion rekursiv aufruft, muss ihr eine DEFFUN-Anweisung in der benutzerdefinierten Funktion vorausgehen.

Beispiele

Die folgende benutzerdefinierte Funktion SHORT vergleicht die Länge von zwei Argumenten und gibt das kürzere zurück:

FUNCTION SHORT(A,B)
AL = LEN(A)
BL = LEN(B)
IF AL < BL THEN RESULT = A ELSE RESULT = B
RETURN(RESULT)

Das folgende Beispiel definiert eine Funktion namens MYFUNC mit den Argumenten oder formalen Parametern A, B und C. Es folgt ein Beispiel für die DEFFUN-Anweisung, die die Funktion MYFUNC deklariert und verwendet. Die in X, Y und Z gespeicherten Ist-Parameter werden von den Formalparametern A, B und C referenziert, so dass der T zugewiesene Wert berechnet werden kann.

FUNCTION MYFUNC(A, B, C)
Z = ...
RETURN (Z)
   .
   .
   .
END

DEFFUN MYFUNC(X, Y, Z)
T = MYFUNC(X, Y, Z)
END