Article View: pl.comp.lang.tcl
Article #17Re: Optymalizacja
From: Googie
Date: Tue, 31 May 2005 09:44
Date: Tue, 31 May 2005 09:44
42 lines
2171 bytes
2171 bytes
Użytkownik "Derek Kuliński / takeda" <d.kulinski@gmail.com> napisał:
> Ma ktoś pomysł jak poniższą procedurę zoptymalizować? Działać działa, ale
> nie jest to ładne rozwiązanie. Bardzo nie podoba mi się powtarzający się
> kod.
Mnie się udało sprowadzić to do takiej postaci: (nie testowałem czy działa -
nie mam na stanie żadnych botów).
Generalnie "optymalizacja" sprowadza się do krótszego zapisu powtarzającego
się kodu (a więc to co Ci się nie podobało :) ). Oprócz tego wyrzuciłem z
pętli sprawdzanie 'if {$modes == ""} {.......}', bo i tak można ustawiać "+"
lub "-" na wstępie oraz przy "resetowaniu" wartości modes.
proc combine_modes {dchan add_r rm_r} {
set maxlen ${::modes-per-line}
set chan [chandname2name $dchan]
set output [list]
set masks [list]
#removing invalid +R
foreach {varName sig} {
rm_r "-"
add_r "+"
} {
set modes $sig
foreach mask [set $varName] {
append modes "R"; lappend masks $mask
if {[llength $masks] >= $maxlen} {
lappend output "MODE $chan $modes [join $masks]"
set modes $sig; set masks [list]
}
}
}
if {[llength $masks] > 0} {
lappend output "MODE $chan $modes [join $masks]"
}
return $output
}
Technical Details
Message-ID:
<d7hb73$koa$1@srv.cyf-kr.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.cyf-kr.edu.pl!not-for-mailReferences:
<6cfos1e7qd1w$.dlg@takeda.tk.stupid.worms.and.spammers.sending.mails.to.msgid>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.cyf-kr.edu.pl!not-for-mail From: "Googie" <googie@no.spam.org> Newsgroups: pl.comp.lang.tcl Subject: Re: Optymalizacja Date: Tue, 31 May 2005 11:44:21 +0200 Organization: Academic Computer Center CYFRONET AGH Lines: 45 Message-ID: <d7hb73$koa$1@srv.cyf-kr.edu.pl> References: <6cfos1e7qd1w$.dlg@takeda.tk.stupid.worms.and.spammers.sending.mails.to.msgid> NNTP-Posting-Host: tatanka.veranet.pl X-Trace: srv.cyf-kr.edu.pl 1117532195 21258 195.214.216.6 (31 May 2005 09:36:35 GMT) X-Complaints-To: news@cyf-kr.edu.pl NNTP-Posting-Date: Tue, 31 May 2005 09:36:35 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit