DECLARATION %FUNC%
Scopo: dichiarazione di una propria funzione in Highway Language.

Sintassi: %FUNC% %NUMBER% [*] | %STRING% [*] | %FLOAT% [*] | %VOID% <nomefunzione> ( [%NUMBER%[*]| %FLOAT%[*]| %STRING%[*] parm_1[, ..., %NUMBER%[*]| %FLOAT%[*]| %STRING%[*] parm_N]])

Descrizione: consente di dichiarare una propria funzione con i comandi CGI, ed inserirla all'interno di uno o più script.
La regione di visibilità di una funzione è sempre globale, anche se può essere definita all'interno di un blocco.
La sintassi dei comandi mostra le modalità di dichiarazione:
%FUNC% constrassegna l'inizio della funzione.
Di seguito va indicato il tipo di dato che la funzione ritorna al chiamante.
La parte successiva è il nome vero e proprio della funzione, quello con il quale verrà richiamata all'interno dello script CGI.
All'interno delle parentesi tonde che terminano la parte dichiarativa della funzione, va indicata la lista dei parametri (tipo e nome)
Il nome della funzione, nel contesto di utilizzo dei caratteri % quali terminatori delle parole chiave per il CGI (default), se NON viene dichiarato racchiuso fra questi terminatori, al momento della chiamata dovrà essere delimitato da caratteri % perchè il modulo Highway Application Server lo riconosca come parola riservata.
Il corpo della funzione si chiude con %ENDFUNC%.
Le funzioni possono richiamare se stesse e quindi supportano il vincolo della ricorsività.

Valore restituito: dipendente dalla dichiarazione.
In caso di errore generico non viene compilata.

Vedere anche: %ENDFUNC%, Linguaggio

Esempio:
%FUNC% %NUMBER% fattoriale (%NUMBER% n)
 %IF%(n<3)
  %RETURN%(n)
 %ENDIF%
 %RETURN%(n*fattoriale(n-1))
%ENDFUNC%

%WRITE%(fattoriale(2))<br>
%WRITE%(fattoriale(3))<br>

Program output:
2
6