Article View: pl.comp.lang.tcl
Article #381Re: unknown dla zmiennych
From: Maciej Sobczak
Date: Mon, 15 May 2006 12:13
Date: Mon, 15 May 2006 12:13
37 lines
2849 bytes
2849 bytes
Artur wrote: > No rzeczywiście Tcl nie ma zbyt zaawansowanego Error handling. > To znaczy; nie można wskoczyć spowrotem do mniejsca gdzie wystąpił > błąd. > SmallTalk na takie stuczki pozwala. > Można ale zostosować wrapper dla dostępu do danej i upvar dla > definicji [...] Dzięki, ale w moim przypadku problem jest jeszcze ogólniejszy: nie znam z góry nazwy zmiennej. Dopiero pierwsze jej użycie (któro może być odczytem!) pozwoli tą nazwę poznać. Tzn. nie pozwoli, bo właśnie nie ma mechanizmu, który by to umożliwił. Widziałem na wiki rozważania, czy dałoby sie jeszcze obciąć gramatykę Tcla. Otóż dałoby się i np. zamiast $x stosować [val x]. Oczywiście jest to mniej wygodne, ale akurat w moim przypadku doskonale rozwiązuje problem: polecenie val i tak sprawdza we własnym słowniku, czym jest x, więc może też podjąć leniwą inicjalizację zmiennej o podanej nazwie. A dla ciekawskich: jest graf obiektów, z których każdy ma różne atrybuty. Niektóre z tych atrybutów wskazują na inne obiekty (węzły w grafie). Chciałbym umożliwić nawigację po grafie tych obiektów a la języki obiektowe, czyli używając zapisu "obiekt.atrybut". A ponieważ atrybuty mogą wskazywać inne obiekty, to ktoś mógłby chcieć napisać np. a.b.c.d.e.f.g.h i oznacza to wartość atrybutu h w obiekcie wskazywanym przez atrybut g obiektu wskazywanego przez atrybut f obiektu... wskazywanego przez a. Oczywiste jest, że w takim układzie nie znam z góry wszystkim możliwych nazw i to jest właśnie ten ciekawy przypadek, kiedy chciałbym móc wyliczyć wartość zmiennej na podstawie jej "nazwy", nawet jeśli taka nazwa nigdy jeszcze nie była użyta. -- Maciej Sobczak : http://www.msobczak.com/ Programming : http://www.msobczak.com/prog/
Technical Details
Message-ID:
<e49ra3$7e$1@sunnews.cern.ch>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news-fra1.dfn.de!newsfeed.ision.net!newsfeed2.easynews.net!ision!kanaga.switch.ch!news-zh.switch.ch!switch.ch!cernne03.cern.ch!cern.ch!newsReferences:
<e49cbn$qhb$1@sunnews.cern.ch> <1147693474.334767.63870@j73g2000cwa.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news-fra1.dfn.de!newsfeed.ision.net!newsfeed2.easynews.net!ision!kanaga.switch.ch!news-zh.switch.ch!switch.ch!cernne03.cern.ch!cern.ch!news From: Maciej Sobczak <no.spam@no.spam.com> Newsgroups: pl.comp.lang.tcl Subject: Re: unknown dla zmiennych Date: Mon, 15 May 2006 14:13:56 +0200 Organization: CERN - European Laboratory for Particle Physics Lines: 37 Message-ID: <e49ra3$7e$1@sunnews.cern.ch> References: <e49cbn$qhb$1@sunnews.cern.ch> <1147693474.334767.63870@j73g2000cwa.googlegroups.com> NNTP-Posting-Host: abpc10883.cern.ch Mime-Version: 1.0 X-Trace: sunnews.cern.ch 1147695235 238 (None) 137.138.37.241 X-Complaints-To: news@sunnews.cern.ch User-Agent: Mozilla Thunderbird 1.0.8-1.4.1.SL (X11/20060424) X-Accept-Language: en-us, en In-Reply-To: <1147693474.334767.63870@j73g2000cwa.googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit