Tcl - Procedures
Procedures are nothing but code blocks with series of commands that provide a specific reusable functionality. It is used to avoid same code being repeated in multiple locations. Procedures are equivalent to the functions used in many programming languages and are made available in Tcl with the help of proc command.
The syntax of creating a simple procedure is shown below −
proc procedureName {arguments} { body }
A simple example for procedure is given below −
Live Demo#!/usr/bin/tclsh proc helloWorld {} { puts "Hello, World!" } helloWorld
When the above code is executed, it produces the following result −
Hello, World!
Procedures with Multiple Arguments
An example for procedure with arguments is shown below −
Live Demo#!/usr/bin/tclsh proc add {a b} { return [expr $a+$b] } puts [add 10 30]
When the above code is executed, it produces the following result −
40
Procedures with Variable Arguments
An example for procedure with arguments is shown below −
Live Demo#!/usr/bin/tclsh proc avg {numbers} { set sum 0 foreach number $numbers { set sum [expr $sum + $number] } set average [expr $sum/[llength $numbers]] return $average } puts [avg {70 80 50 60}] puts [avg {70 80 50 }]
When the above code is executed, it produces the following result −
65 66
Procedures with Default Arguments
Default arguments are used to provide default values that can be used if no value is provided. An example for procedure with default arguments, which is sometimes referred as implicit arguments is shown below −
Live Demo#!/usr/bin/tclsh proc add {a {b 100} } { return [expr $a+$b] } puts [add 10 30] puts [add 10]
When the above code is executed, it produces the following result −
40 110
Recursive Procedures
An example for recursive procedures is shown below −
Live Demo#!/usr/bin/tclsh proc factorial {number} { if {$number <= 1} { return 1 } return [expr $number * [factorial [expr $number - 1]]] } puts [factorial 3] puts [factorial 5]
When the above code is executed, it produces the following result −
6 120