🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.tcl
Article #119

Re: Jak odwołać się do nazwy procedury?

#119
From: kokoryn
Date: Tue, 12 Jul 2005 21:21
43 lines
2845 bytes
On Tue, 12 Jul 2005 11:29:44 -0700, Derek Kuliński / takeda
<d.kulinski@gmail.com> wrote:

>Może to zadziała:
>proc ctreate_proc {name} {
>  proc $name {} "\
>    global tab \
>    set tab($name) costam \
>  "
>}

Jest to jakiś pomysł (przy okazji - znaki "\" nie są tu niezbędne).
Jednak wydaje mi się, że to rozwiązanie byłoby dobre tylko dla tak
trywialnej procedury. Każde odwołanie się do jakiejś zmiennej w ciele
procedury zostałoby rozwinięte w momencie stworzenia procedury i
trzeba byłoby sporo się namęczyć, żeby to obejść, a efekt byłby bardzo
nieelegancki. Jestem przekonany, że istnieje jakiś ładny sposób.

>Ja osobiście nie rozumiem po co takie rozwiązania, ale raczej jak bym coś
>takiego miał robić to próbowałbym w ten sposób.

Jest mi to potrzebne do uzyskania modelu podobnego do tego, jaki jest
stosowany przy tworzeniu widgetów w Tk. Tam każdy widget ma swoją
procedurę - u mnie analogicznie każda procedura obsługuje pewien
"obiekt", którego stan muszę przechowywać pomiędzy kolejnymi
wywołaniami procedury. Mógłbym to zrobić za pomocą zmiennych
globalnych, ale nie chcę zaśmiecać globalnej przestrzeni nazw, więc
pomyślałem, że będę trzymał te dane w jednej globalnej tablicy. Może
to jest wyważanie otwartych drzwi, ale chyba nie - nic mi nie wiadomo
o jakimś odpowiedniku słowa kluczowego static z C++ w Tcl.

>Wiesz grupa jest nowa, i raczej dużo osób nie wie. Jeżeli na innej grupie
>widzisz, że ktoś dyskutuje o tcl, możesz poinformować że taka grupa
>niedawno zostałą stworzona.

Chyba jest to rozsądne rozwiązanie.

>Ale jak teraz obserwuję to raczej stopniowo ruch się powiększa, może wolno,
>ale widzę coraz więcej postów, więc raczej IMO nie jest źle.

Cóż, ja sam byłem dotąd tylko i wyłącznie biernym użytkownikiem
usenetu, ale jak powstała grupa o Tcl, to zdecydowałem się tutaj
pisać, więc chciałbym, żeby coś się tu działo ;).
Technical Details
Message-ID: <1ob8d1tdlj2bjuml0lm01gkbkkhdv5de1i@4ax.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!lublin.pl!news.lublin.pl!not-for-mail
References: <b4g7d1lb34n5638g0daao7mq3i0jhivh8v@4ax.com> <1wzocj9rlwvcg$.dlg@takeda.tk.invalid>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!lublin.pl!news.lublin.pl!not-for-mail
From: kokoryn <kokoryn_NO_SPAM_@o2.pl>
Newsgroups: pl.comp.lang.tcl
Subject: Re: Jak odwołać się do nazwy procedury?
Date: Tue, 12 Jul 2005 23:21:12 +0200
Organization: lubman
Lines: 44
Message-ID: <1ob8d1tdlj2bjuml0lm01gkbkkhdv5de1i@4ax.com>
References: <b4g7d1lb34n5638g0daao7mq3i0jhivh8v@4ax.com> <1wzocj9rlwvcg$.dlg@takeda.tk.invalid>
NNTP-Posting-Host: trantor.dot-com.net.pl
Mime-Version: 1.0
X-Trace: news.lublin.pl 1121203264 31944 212.182.96.190 (12 Jul 2005 21:21:04 GMT)
X-Complaints-To: abuse@news.lublin.pl
NNTP-Posting-Date: Tue, 12 Jul 2005 21:21:04 +0000 (UTC)
X-Newsreader: Forte Agent 2.0/32.652
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit