eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPowerShell - ktos uzywa?Re: PowerShell - ktos uzywa?
  • Data: 2013-03-17 12:27:47
    Temat: Re: PowerShell - ktos uzywa?
    Od: "R.e.m.e.K" <g...@d...null> szukaj wiadomości tego autora
    [ pokaż wszystkie 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: