FUNCTION構文を使用してください。pltcl;PL/TclUでも、言語にpltcluを指定しなければならない点以外は同様です。関数本体は、単なる小さなTclスクリプトです。nという名前の変数として渡されます。結果は通常通りreturn文を使用してTclのコードから返されます。プロシージャでは、Tclコードからの戻り値は無視されます。2つの整数のうち大きな方を返す関数は以下のように定義できます。STRICT;STRICT句に注意してください。これによりプログラマは、入力にNULL値が与えられた場合を検討する手間を省くことができます。NULLが渡された場合、関数はまったく呼び出されず、単にNULLという結果が自動的に返されます。厳密(strict)でない関数では、引数の実際の値がNULLである場合、対応する$n変数は空文字列に設定されます。ある引数がNULLかどうかを検出するためには、argisnull関数を使用してください。引数の片方がNULL、もう片方が非NULLであって、NULLではなく、非NULLの引数の方を返すtcl_maxを考えると、以下のようになります。pltcl;上で示した通り、NULL値をPL/Tcl関数から返すためには、return_nullを実行してください。これは、関数が厳密かどうかに関係なく、実行することができます。複合型の引数は、Tcl配列として関数に渡されます。配列の要素名は複合型の属性名です。渡された行の属性がNULL値の場合、その属性は配列内には現れません。pltcl;PL/Tcl関数は複合型の結果を返すこともできます。このためには、Tclコードは期待する結果型と一致する列の名前/値のペアのリストを返さなければなりません。そのリストで省略された列名は結果がNULLになり、期待されない列名があるとエラーが生じます。pltcl;プロシージャの出力引数は同様に返されます。Tclコマンドを使って、希望するタプルの配列表現から結果リストを作成することができます。pltcl;PL/Tcl関数は集合を返すことができます。このためにはTclコードで、return_nextを返却する行ごとに呼び出します。スカラー値を返却する場合は適切な値を、複合型を返す場合は列の名前/値ペアのリストを渡します。スカラー型を返す例を示します。pltcl;複合型を返す例を示します。PL/Tclにおけるデータの。