-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed2.plix.pl!goblin2!gobli
n.stu.neva.ru!usenet.blueworldhosting.com!npeer03.iad.highwinds-media.com!news.
highwinds-media.com!feed-me.highwinds-media.com!border3.nntp.dca.giganews.com!b
order1.nntp.dca.giganews.com!nntp.giganews.com!nx01.iad01.newshosting.com!newsh
osting.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news
.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: "R.e.m.e.K" <g...@d...null>
Subject: Re: PowerShell - ktos uzywa?
Newsgroups: pl.comp.programming
User-Agent: 40tude_Dialog/2.0.15.1pl
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Sender: hell@heaven
References: <5142e7de$0$1250$65785112@news.neostrada.pl>
<c...@g...com>
<514459fd$0$1220$65785112@news.neostrada.pl>
<ki1mht$28j$1@news.icm.edu.pl>
<514471c3$0$1220$65785112@news.neostrada.pl>
<ki452i$2lt$1@news.icm.edu.pl>
Date: Sun, 17 Mar 2013 12:27:47 +0100
Lines: 119
Message-ID: <5145a8b3$0$26686$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 89-71-60-255.dynamic.chello.pl
X-Trace: 1363519667 unt-rea-a-01.news.neostrada.pl 26686 89.71.60.255:52560
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 5828
Xref: news-archive.icm.edu.pl pl.comp.programming:202227
[ ukryj nagłówki ]Dnia Sun, 17 Mar 2013 11:14:42 +0100, PawelS napisał(a):
>>> A jaka to konkretnie składnia Perla Cię odrzuca,
>>> mógłbyś podać przykłady (tak z ciekawości pytam).
>>
>> Chocby pierwszy lepszy z polskiej wiki:
>>
>> $_ = "Magiczna liczba to 150\n";
>> print;
>> s/\d+/-1/;
>> print;
> To jest niestety problem ... wikipedii i wikipedystów,
> przedstawiających takie, a nie inne przykłady
> a na to nic nie poradzimy ...
Zawsze mozesz wyedytowac wiki i poprawic, sam tak czasem robie :-)
> To powyżej powinno być zapisane:
> my $var; # using strict w perlu trzeba deklarować jednak zmienne ;)
> $var="Magiczna liczba to 150\n";
> print($var);
> # na to niestety nie ma akurat rady, chyba że własna sub:
> # coś na kształt PHP:
> # sub preg_replace {
> # my ($pattern,$replacement,$subject)=@_;
> # $subject=~s/$pattern/$replacement/g;
> # return $subject;
> # }
> $var=~s/\d+/-1/; # lub $var=preg_replace('\d+', '-1', $var);
> print($var);
> Jak dla mnie tak jest czytelniej,
> wystarczy przestać używać wynalazków i skrótów perla.
Ale jak sam piszesz przestac nie tak latwo, bo "na to niestety nie ma rady".
>> Albo:
>> $n = $#a - $[ + 1;
>> print "ilosc elementow w wektorze: $n \n";
>>
>> Taki $#a czy $[ jako zywo przypomina mi idee Brainfucka, ktory jest fajny,
>> bo dowcipny i pomyslowy, ale jest tylko zartem.
btw powyzszy przyklad nie jest juz z wiki, tylko jakiegos studenckiego
skryptu.
> Jeśli nie można czegoś zmienić, to ...
> $#a - odpowiednik: count(ARRAY)-1
> ewentualnie, można zapisać własne sub:
> # sub count { my (@LIST)=@_; return $#LIST; }
> # przy czym to mylące, bo zwraca indeks ostatniego elementu
> # powinno być raczej: return $#LIST+1;
> przy czym to ARRAY to LIST, a jest jeszcze HASH,
> tu akurat w wielu językach jest to lepiej rozwiązane
> bez podziału na listę (klucze numeryczne)
> i hash (klucze to ciągi znaków)
czyli koszmarek :)
>>> Wprawdzie Perl ma pewne swoje takie, a nie inne konstrukcje,
>>> jednakże w Perlu można pisać całkiem czytelne programy,
>>> składnią przypominające programy pisane w C
>>> (oczywiście poza pewnymi drobnymi wyjątkami).
Ja zdaje sobie sprawe, ze po miesiacu perlowania nie bede sie juz potykal o
te dziwactwa, ale naprawde wole power inwestowac w rzeczy bardziej
uniwersalne niz pomysly zwyciezcy konkursu "najbardziej zamotana skladnia".
>> W Pythonie tez mozna, w Rubym tez mozna, ostatecznie w Visual Basicu tez
>> mozna. To nie jest argument, ze da sie pisac czytelnie, czytelnosc powinna
>> byc odgornie narzucona imho.
> Niestety z racji, że python narzuca na formatowanie,
> to i nie bardzo mi się podoba.
> Często stosuję tego typu pseduo kompresję kodu:
> if (conditional) { $a=1; $B[2]=2; $C['key']=3; }
> a gdzie indziej jeśli to potrzebne dekompresję:
> if (conditional) {
> $a=1; # bo jest to pierwsza zmienna w if ;)
> $B[2]=2; # bo jest to druga zmienna w if, to klucz = 2 i wartość = 2
> $C['key']=3; # bo musi być inaczej niż w poprzednich liniach
> }
Teraz ja z ciekawosci spytam. Po co stosujesz kompresje? Masz jakis cel w
tym, zeby plik zrodla bym mniejszy? Osobiscie unikam takich praktyk jak
ognia, bo po roku, gdy musze ten kod czytac to chetnie sam bym sie kopnal w
dupe za taki styl. Znaczy juz nie musze, bo od lat tego nie robie.
> Poza tym zawsze się zastanawiam,
> jeśli w pytonie napiszę:
> if conditional
> instrukcja # linia rozpoczęta 1 tabulatorem
> instrukcja # linia rozpoczęta 4 spacjami
> instrukcja # linia rozpoczęta 1 tabulatorem
> instrukcja # linia rozpoczęta 4 spacjami
>
> to pytanie jak python to zinterpretuje?
Czy to nie zalezy od ustawien kompilatora? Poza tym uzywajac dobrego edytora
mozna o tym problemie zapomniec bez wzgledu na to czy uzywasz spacji, taba
czy obu naraz. Mam na mysli edytor, ktory w locie podmieni taby na spacje
lub spacja na taby - tak jak chcesz.
Zatem jest to problem wagi lekkiej, w przeciwienstwie do perlowych kompresji
zabetonowanych w jezyk na zawsze.
> Przeglądając kody źródłowe (like C) często widzę
> mieszany styl wcięć, kilka linii ładnie spacjami,
> kolejne linie ładnie tabulatorami,
> i jeśli ja mam inne ustawienia np: vim ts=4 sw=4
> to niestety kod rozjeżdża mi się na ekranie,
> po prostu cudowny haos ...
> a i nawet kody w pythonie tak zapisane skrypty widziałem ...
> co dla mnie jest zastanawiające jak to się wykona
> analogicznie jak dla Ciebie powyższe perlowe replace ...
A jednak sie jakos wykonuje chyba. Czyli moze python jest "madrzejszy" niz
sie wydaje? :-)
--
pozdro
R.e.m.e.K
Następne wpisy z tego wątku
- 17.03.13 19:36 Roman W
- 17.03.13 20:51 Edek Pienkowski
- 17.03.13 21:46 PawelS
- 18.03.13 08:07 Adam Przybyla
- 18.03.13 10:36 R.e.m.e.K
- 18.03.13 11:09 Adam Przybyla
- 18.03.13 12:37 Edek Pienkowski
- 18.03.13 12:52 Adam Przybyla
- 18.03.13 13:12 grapeli23
- 20.03.13 22:31 Edek Pienkowski
- 27.03.13 09:49 Ghost
- 27.03.13 09:50 Ghost
- 27.03.13 11:19 AK
- 27.03.13 11:20 AK
- 24.04.13 14:08 Edek
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-20 Gdańsk => Programista Full Stack .Net <=
- 2025-01-20 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-20 Warszawa => Full Stack .Net Engineer <=
- 2025-01-20 huta ruszyla
- 2025-01-20 piece wodorowe
- 2025-01-20 Lublin => Programista Delphi <=
- 2025-01-20 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-20 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-20 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-19 Test - nie czytać
- 2025-01-19 qqqq
- 2025-01-19 Tauron przysyła aneks
- 2025-01-19 Nowa ładowarka Moya a Twizy -)
- 2025-01-18 Power BANK z ładowaniem przelotowym robi PRZERWY
- 2025-01-18 Pomoc dla Filipa ;)