A Harbour programozási nyelv

Alprogramok, modulok

Eljárások és függvények

[STATIC] PROCEDURE SomeProcedureName [STATIC] PROCEDURE SomeProcedureName() [STATIC] PROCEDURE SomeProcedureName( Param1' [, ParamsN] )

INIT PROCEDURE SomeProcedureName EXIT PROCEDURE SomeProcedureName

[STATIC] FUNCTION SomeProcedureName [STATIC] FUNCTION SomeProcedureName() [STATIC] FUNCTION SomeProcedureName( Param1' [, ParamsN] )

Az eljárások és a függvények a PROCEDURE és a FUNCTION kulcsszavakkal határozhatók meg. A változók esetén megismert elnevezési szabályok érvényesek jelen esetben is. A függvények és eljárások láthatósága egyaránt korlátozható a STATIC qualifierrel azért, hogy csak a ott legyen érvényes hatóköre, ahol a modult definiálták. Az INIT és EXIT opcionális qualifierek. Az INIT jelzi az eljárásnak, hogy automatikusan hívódjon meg még a hagyományos hívás előtt, a program induló eljárása közben. Az EXIT hasonlóképpen működik, csak éppen az applikáció megfelelő lezárásakor. A paraméterek mint lokális változók egy, a szubrutinban megjelenő alprogramnak kerülnek átadásra, amely elfogad bármilyen típust. Az argumentum változóinak módosulása nem tükröződik az alprogram által hívott megfelelő változókon, hacsak nem világosan, referencia szerint küldik át a @ előtaggal. Az eljárásnak nincs visszatérési értéke, de ha kifejezésbe kerül, akkor NIL-t eredményez. A funkció a függvény törzsén belül bárhol, tetszőleges típussal térhet vissza a RETURN utasítás révén. Eljárás definiálásra és függvényhívásra egyszerű példa:

x := Cube( 2 ) FUNCTION Cube( n ) RETURN n ** 3