🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: unknown dla zmiennych

#381
From: Maciej Sobczak
Date: Mon, 15 May 2006 12:13
37 lines
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!news
References: <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