Definice procedur a funkcí v IDL

Funkce explicitně vrací hodnotu, procedura může předat výsledek jen prostřednictvím parametrů.

Proměnné uvnitř procedury/funkce

Typy parametrů

Příklady

;definice procedury s jednim povinnym parametrem
pro FCEX1, x
 print,'sin(',x,')=',sin(x)
end
;volani
FCEX1,!pi
;definice procedury se dvema povinnymi parametry
pro FCEX2, x, y 
 print,'sin(',x,')=',sin(x)
 print,'cos(',y,')=',cos(y)
end
;volani
FCEX2,!pi,!pi/4
;definice procedury s dvema nepovinnymi parametry
pro FCEX3, x, y 
 if N_PARAMS() eq 0 then return
 print,'sin(',x,')=',sin(x)
 if N_PARAMS() gt 1 then print,'cos(',y,')=',cos(y)
end
;volani
FCEX3,!pi,!pi/4
FCEX3,0
FCEX3
;definice procedury s klicovym parametrem
pro FCEX4, x, SINX=s
 if keyword_set(s) then print,'sin(',x,')=',sin(x)
end
;volani
FCEX4,!pi
FCEX4,!pi,/S
FCEX4,!pi,/SI 
FCEX4,!pi,/SIN
FCEX4,!pi,/SINX
FCEX4,!pi,SI=1
;definice funkce s klicovymi parametry
function FCEX5, x, SINX=s, COSX=c
 if keyword_set(s) then return,sin(x)
 if keyword_set(c) then return,cos(x)
 return,!values.f_nan
end
;volani
print,FCEX5(!pi)
print,FCEX5(!pi,/SINX)
print,FCEX5(!pi,/COSX)
print,FCEX5(!pi,/C,S=1)   ;vrati sin(x)

Předávání dat hodnotou a referencí

;procedura menici hodnotu formalniho parametru
pro H1, x
 print,x
 x=0
 print,x
end
;hodnotou
H1,8
;hodnotou
x=2
H1,2*x
print,x
;odkazem
x=2
H1,x
print,x

L.Přech, poslední úpravy 22.11.2000