🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#123
From: Wojciech Kocjan
Date: Sun, 17 Jul 2005 14:44
58 lines
3819 bytes
kokoryn napisał(a):
> On Tue, 12 Jul 2005 18:06:21 -0700, Derek Kuliński / takeda
> <d.kulinski@gmail.com> wrote:
> 
> 
>>>[...] Jestem przekonany, że istnieje jakiś ładny sposób.
>>
>>Wątpię, co Ty chcesz robić to coś co samo modyfikujący się kod, a to raczej
>>rzadko było eleganckie.
> 
> 
> Tworzenie funkcji w locie to chyba dosyć powszechna praktyka w
> językach interpretowanych, prawda? Poza tym przecież Tk działa na tej
> zasadzie i jest eleganckie i proste w użyciu. Incr Tcl z tego co wiem
> też działa jakoś podobnie.

Mniejwięcej tak. Nie wiem tylko dlaczego nie skorzystałbyś z Incr Tcl 
lub innego systemu obiektowego? Ja korzystam z Incr Tcl, podobno XOTcl 
jest bardziej Tcl-owy, ale mniej przypomina model z C++/Javy, a więc 
ciężej go załapać. Ja póki co się nie skusiłem na sprawdzenie co to 
oznacza :-)

>>Ale nie możesz np używać namespaces, albo incr tcl (to bodajże obiektowy
>>tcl, więc powinien mieć coś takiego wbudowane).
> Myślałem o użyciu namespaces, a Incr Tcl jeszcze nie próbowałem
> używać. Tak naprawdę to nie jest to jakiś realny problem wymagający
> konkretnego rozwiązania. Chciałem się dowiedzieć jak osiągnąć coś
> takiego w celach edukacyjnych.

Rozwiązań jest tyle ilu ludzi, którzy rozumieją dynamiczność Tcl - Tcl 
to jedyny chyba język dynamiczny (skryptowy już nie jest trendy podobno 
bo się kojarzy z kodem do 200 linii), gdzie całą obiektowość zrobić nim 
samym. Popatrz sobie np na ilość rozwiązań lambdy. Jeśli możesz, 
korzystaj z Incr Tcl.

Incr Tcl wiąże się z tym, że na docelowych maszynach musi być Incr Tcl 
albo dajesz wersję binarną - z czym jest problem pod Linuxem z kolei :(, 
więc jeśli natomiast nie możesz lub nie chcesz go używać, to jest 
conajmniej 5 możliwości, nie ma "The Right Way(TM)", bo Tcl jest na tyle 
dynamiczny, że nie musi być.

Namespace sam w sobie nie służy do tworzenia obiektów, natomiast pomaga 
w zarządzaniu modułami - każdy moduł może mieć zmienne globalne w danym 
namespace, dzięki czemu trudniej o kolizje (chociaż daleko tu do 
Sunowskiego pomysłu z domenami).

Namespace jest na pewno pomocny, chociażby do trzymania danych 
kontekstowych, jeśli już robisz OO samemu.

>>No nie będzie się nic działo jak nikt nie będzie zadawał pytań czy udzielał
>>odpowiedzi =)
> Zgadza się. Właśnie dlatego zacząłem pisać ;).

To może niech każdy się przedstawi w osobnym wątku - w kontekście Tcl 
oczywiście, zrobimy ruch a i na temat będzie :-)

-- 
WK
Technical Details
Message-ID: <42DA6EB8.7060407@kocjan.org>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.internetia.pl!newsfeed.tpinternet.pl!nemesis.news.tpi.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
References: <b4g7d1lb34n5638g0daao7mq3i0jhivh8v@4ax.com> <1wzocj9rlwvcg$.dlg@takeda.tk.invalid> <1ob8d1tdlj2bjuml0lm01gkbkkhdv5de1i@4ax.com> <7l9doxls482u.dlg@takeda.tk.invalid> <f0qkd1pii70du9tjob8tmi62nhnbpf23e8@4ax.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.internetia.pl!newsfeed.tpinternet.pl!nemesis.news.tpi.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: Wojciech Kocjan <hceicjow.backward@kocjan.org>
Newsgroups: pl.comp.lang.tcl
Subject: Re: Jak odwołać się do nazwy procedury?
Date: Sun, 17 Jul 2005 16:44:08 +0200
Organization: tp.internet - http://www.tpi.pl/
Lines: 58
Message-ID: <42DA6EB8.7060407@kocjan.org>
References: <b4g7d1lb34n5638g0daao7mq3i0jhivh8v@4ax.com> <1wzocj9rlwvcg$.dlg@takeda.tk.invalid> <1ob8d1tdlj2bjuml0lm01gkbkkhdv5de1i@4ax.com> <7l9doxls482u.dlg@takeda.tk.invalid> <f0qkd1pii70du9tjob8tmi62nhnbpf23e8@4ax.com>
NNTP-Posting-Host: bom131.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
X-Trace: atlantis.news.tpi.pl 1121611453 22944 83.29.28.131 (17 Jul 2005 14:44:13 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Sun, 17 Jul 2005 14:44:13 +0000 (UTC)
To: kokoryn <kokoryn_NO_SPAM_@o2.pl>
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
X-Accept-Language: pl, en-us, en
In-Reply-To: <f0qkd1pii70du9tjob8tmi62nhnbpf23e8@4ax.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit