Tcl - Prosedur
Prosedur tidak lain adalah blok kode dengan serangkaian perintah yang menyediakan fungsionalitas khusus yang dapat digunakan kembali. Ini digunakan untuk menghindari pengulangan kode yang sama di beberapa lokasi. Prosedur setara dengan fungsi yang digunakan dalam banyak bahasa pemrograman dan tersedia di Tcl dengan bantuanproc perintah.
Sintaks untuk membuat prosedur sederhana ditunjukkan di bawah ini -
proc procedureName {arguments} {
body
}
Contoh sederhana untuk prosedur diberikan di bawah ini -
#!/usr/bin/tclsh
proc helloWorld {} {
puts "Hello, World!"
}
helloWorld
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Hello, World!
Prosedur dengan Banyak Argumen
Contoh untuk prosedur dengan argumen ditunjukkan di bawah ini -
#!/usr/bin/tclsh
proc add {a b} {
return [expr $a+$b]
}
puts [add 10 30]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
40
Prosedur dengan Argumen Variabel
Contoh untuk prosedur dengan argumen ditunjukkan di bawah ini -
#!/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 }]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
65
66
Prosedur dengan Argumen Default
Argumen default digunakan untuk memberikan nilai default yang dapat digunakan jika tidak ada nilai yang diberikan. Contoh untuk prosedur dengan argumen default, yang terkadang disebut sebagai argumen implisit ditampilkan di bawah ini -
#!/usr/bin/tclsh
proc add {a {b 100} } {
return [expr $a+$b]
}
puts [add 10 30]
puts [add 10]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
40
110
Prosedur Rekursif
Contoh untuk prosedur rekursif ditunjukkan di bawah ini -
#!/usr/bin/tclsh
proc factorial {number} {
if {$number <= 1} {
return 1
}
return [expr $number * [factorial [expr $number - 1]]]
}
puts [factorial 3]
puts [factorial 5]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
6
120