Eine weitere wichtige Eigenschaft, welche zum strukturierten Programmieren nicht fehlen darf stellen die Prozeduren oder auch Funktionen dar. In Tcl können Prozeduren definiert werden, welchen man Aufrufparameter übergeben kann und anschließend ein Ergebnis zurückliefern. Hierbei ist es wichtig zu beachten, daß auf globale Variablen (welche im Hauptprogramm definiert sind) in Funktionen nicht direkt zugegriffen werden kann. Ist es dennoch erwünscht auf globale Variablen zuzugreifen, so müssen sie importiert werden.
Zur Definition einer Prozedur schreibt man das Schlüsselwort proc gefolgt von dem Namen der Prozedur, einer Liste der Aufrufparameter und letztendlich dem Skript der Prozedur. Der Rückgabewert einer Prozedur wird durch return bestimmt, bzw. falls return nicht vorhanden ist, ist der Rückgabewert der Prozedur die zuletzt benutzte Variable.
proc summe {a b} {
for {set i $a} {$i <= $b} {incr $i} {
set sum [expr $sum + $i]
return $sum
}
Diese Prozedur berechnet beispielsweise die Summe der ganzen Zahlen welche zwischen a
und b liegen (zur Vereinfachung wurde hier die Prüfung a < b vernachlässigt).
Wenn diese Prozedur nun auf eine globale Variable max_x zugreifen soll, so muß die
Variable mit der Anweisung
global max_ximportiert werden.