TCL & uplevel

perintah uplevel digunakan untuk menjalankan perintah2 yang berada di
stack frame yang berbeda, stack frame telah dijelaskan di
https://inthegarage.wordpress.com/2007/06/13/tcl-upvar/,

Mungkin lebih baik langsung pada contoh

proc a {} {
    set x 10
    set y 20

    b
}

proc b {} {
    uplevel 1 {set x 20; puts "nilai dari x : $x"}
    uplevel 1 {incr x 20}
    uplevel 1 {puts $x}
}

dan hasilnya adalah sebagai berikut

%a
nilai dari x : 20
40
% 3

contoh lain dari penggunaan uplevel adalah untuk mengkustomisasi
struktur, misalnya adalah perintah loop yang tidak terdapat pada tcl,
misalnya syntax dari loop adalah loop 1 0 {..}, maka implementasinya
adalah

proc loop {from to body} {
    for {set var $from} {$var < $to} {incr var} {uplevel 1 $body}
}

perintah uplevel pada loop untuk menjalankan perintah pada body, yang
mempunyai 1 level lebih tinggi daripada perintah loop.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: