Názory k článku Perličky (2)

  • 6. 12. 2001 8:17

    RWS (neregistrovaný)

    a) kdyz jsem zadal neco do toho pole a stisknul Enter, tak se mi Netscape presmeroval nekam na neexistujici odkaz na www.root.cz
    b) zadal jsem ($hod,$min,$sec)=split(":",$time);, coz jsem si pro jistotu overil a je to take spravne. Nezapominejte na TIMTOWTDI:))

  • 6. 12. 2001 10:07

    bobo (neregistrovaný)

    neni to skoda, ze neumi vnorene seznamy ? to je vec ktera se mi napr. v pythonu strasne moc libi :)

  • 6. 12. 2001 11:52

    ico (neregistrovaný)

    Vnorene hocico:
    @a=(1,2,[3,4,5,{"k1"=>6,"k2"=>7}]);
    print $a[2][3]{'k2'};# 7
    #...3. prvok pola @a je pole a jeho 4. prvok je zase hash.

  • 6. 12. 2001 11:56

    Stepan (neregistrovaný)

    Perl samozrejme vnorene seznamy umi a to uzitim specialnich zavorek [ ], jejichz hodnotou je odkaz na pole. Tedy:
    @a = ( [ 'a', 'b' ], 'c') je pole o dvou prvcich, kdy prvni je odkaz na pole o dvou prvcich. Pristupuje se k tomu zcela transparentne. A kdyz se chce vytvorit vnorene pole z existujiho pole, tak se uzije @b = ( \@a, 'd').

  • 6. 12. 2001 13:55

    schweppes (neregistrovaný)

    Moje rec. Python je opravdu jeden z nejsilnejsich<a nejkrasnejsich jazyku, ktere jsem kdy potkal. Je strasne snadny k pochopeni, zadny zavorkovy peklo, proste vim, ze [] je list, () je tuple a {} asociativni pole. A z toho vseho se nechaji poskladat krasne veci. Ke vsemu vse je objektove (od verze 2.2 se necha dedit i od vestavenych typu), slice konstrukce, __doc__ stringy, moznost emulovat ruzne atributy objekt pomoci __getattr__ a __setattr__, vyznaceni jednotlivych bloku jen na zaklade odsazeni, &quot> a nejkrasnejsich jazyku, ktere jsem kdy potkal. Je strasne snadny k pochopeni, zadny zavorkovy peklo, proste vim, ze [] je list, () je tuple a {} asociativni pole. A z toho vseho se nechaji poskladat krasne veci. Ke vsemu vse je objektove (od verze 2.2 se necha dedit i od vestavenych typu), slice konstrukce, __doc__ stringy, moznost emulovat ruzne atributy objekt pomoci __getattr__ a __setattr__, vyznaceni jednotlivych bloku jen na zaklade odsazeni, "multiplatformita", debuger a profiler napsany v pythonu, regulerni vyrazy, unicode... to vse me presvedcilo, ze tenhle jazyk je pro me tim pravym nabozenstvim.


    Python ma kompilaci snad odjakziva. S cim trochu zaostava, to je optimalizace. Pokud si o ni clovek rekne volbou -o na prikazovym radku, python (2.0) pouze vynecha nastavovani nekterych debugovacich informaci. Verim, ze v novejsich verzich tomu ale bude jinak.


    Dekuji, Honza

  • 6. 12. 2001 11:46

    Zakkr (neregistrovaný)

    Kdyz jsem tak cetl tu cast o Perlu 6 tak jsem se nemohl ubranit pocitu, ze jsem neco podobneho uz nekde slysel... jak, ze se to jmenovalo... gcc? Aneb ruzne jazyky do vlastniho kodu a pak z toho udelat nejaky vysledek. Nebude se zde objevovat objevene?

  • 6. 12. 2001 22:05

    anonymní

    interpretovany jazyk vyzaduje neco jineho nez jazyk kompilovany (maximalni rychlost syntakticke i semanticke analyzy, minimalizaci vnitrnich struktur, volitelnou kompilaci kodu).

  • 6. 12. 2001 21:28

    in_gen_Ir (neregistrovaný)

    Pekny clanek, pokud clovek chce opacko perlu 5. Ale mozna by stalo za to, kdyz uz se opakuje perl 5, rict, co vsechno se (prevdepodobne) v perlu 6 zmeni:
    => nebude nadale jina forma carky
    kontextu bude mnohem vic
    nebudou existovat typegloby - proc se tedy tady opakuji ?
    etc.

    Ja nerikam, ze je spatne se rozepsat o perlu 5, ja si jen myslim, ze pro pochopeni perlu 6 neni treba vedet vsechny veci, ktere tam *nebudou*.

  • 6. 12. 2001 21:33

    in_gen_Ir (neregistrovaný)

    perl 6 bude mit neco jako bool, bude to prave jeden z novych kontextu.
    jina vec jsou properties, ty umoznuji prilepit dalsi (pojmenovanou) hodnotu k objektu, cili:
    return 0 is true;
    se v numerickem kontextu vyhodnoti jako normalni nula, je-li vsak pouzita v podmince a tim v bool-kontextu, tak jako true. :)

  • 8. 12. 2001 16:20

    Jenda (neregistrovaný)

    1) "speciální znak "=>" je pouze náhražkou za čárku, kterou si tam Perl potom stejně dá."

    Ovsem jisty maly ale podstatny rozdil mezi => a carkou tu prece jen je. Zkuste tohle :

    %OK = (time => '15:30');
    %BAD = (time, '15:30');

    foreach (keys %OK) {print "OK: $_ => $OK{$_}\n"}
    foreach (keys %BAD) {print "BAD: $_ => $BAD{$_}\n"}

    => totiz na rozdil od carky zaridi to, ze pokud ta vec pred nim vypada jako slovo tak se bude brat jako retezec a ne jako volani funkce.

    2) "otázkou zůstává, co bude interpret říkat na to, když se pokusíme hash inicializovat lichým počtem prvků. ... nebude z toho moc nadšen, něco zabrumlá, ale program fungovat bude."

    Tohle zavisi na tom jestli mate zapnute warningy. Coz byste samozrejme meli ;-)

    3) "V Perlu rozeznáváme dva kontexty: skalární a seznamový. "

    A pak jeste prazdny, ciselny a logicky. I kdyz ten ciselny a logicky wantarrayem nezjistite :

    sub test {
    print "wantaray=".wantarray()."\n";
    print "wantarray ".(defined wantarray() ? "" : "not ")."defined\n";
    };

    print "LIST\n";
    @a = test();

    print "SCALAR\n";
    $a = test;

    print "VOID\n";
    test();

    Ciselny a logicky kontext zpusobuje urcite konverze.

    4) Konstanty : "nejpřirozenější je vytvořit si funkci,
    která prostě vrátí hodnotu"
    sub PI { 3.1415 };

    Lepsi je napsat to takhle :

    sub PI () { 3.1415927}

    ty kulate zavorky znamenaji, ze tato funkce nikdy nebere zadne parametry. A optimalizator zaridi, ze se ve skutecnosti zadna funkce volat nebude (jako inline funkce v C). A nehrozi vam potom, ze misto toho aby k PI nevo pricetl zavola funkci PI a da ji to cislo jako parametr.

    Zkuste
    print PI + 5;
    postupne s obema definicema.

    Z tohoto je jasne, ze
    use constant PI => 3.1415927;
    toho dela o malicko vic, nez ze nadefinuje funkci.

    5) Typegloby

    Podle me je lepsi existenci typeglobu zatajit. Prinejmensim zacatecnikum.

    Pokud chcete predavat ovladace souboru nebo mit jistotu, ze vam ten vas ovladac nejaka jina funkce neprepise pak je spravny postup :

    use FileHandle;
    sub mySub {
    ...
    my $FH;
    open $FH, $filename or die "can't open: $!\n";
    mySubSub(1,2,3,$FH);
    close $FH;
    }

    Tohle je mnohem bezpecnejsi nez hrat si s typegloby.

    6) "To není překlep, protože funkce return volaná bez parametrů implicitně vrací nepravdu. Mohli byste tedy napsat "return 0;" -- je to to samé v bledě modrém."

    To tedy setsakra neni, jedine v logickem kontextu. Zkuste si vytisknout navratovou hodnotu te funkce ;-) Dokonce ani
    return undef;
    neni to same co
    return;

    Zkuste si :
    sub Undef {return undef}
    sub Nic {return}
    @Undef = Undef;
    @Nic = Nic;
    print "Undef's true\n" if @Undef;
    print "Nic's true\n" if @Nic;

    7) in_gen_Ir: "return 0 is true;
    se v numerickem kontextu vyhodnoti jako normalni nula, je-li vsak pouzita v podmince a tim v bool-kontextu, tak jako true"

    Coz se v soucasnem Perlu obvykle pise
    return "0 but true";
    ;-)

    Hnidopich Jenda ;-)

    P.S.: Jen pis dal Lukasi, nenech se otravit! Ja si nikdy nemuzu nechat ujit prilezitost se trosku vykecavat ;-)

  • 10. 1. 2002 20:39

    VirKing (neregistrovaný)

    Este malicka poznamka k tomu prikladu:
    ($hod,$min,$sec) = split /:/,$time;
    nie je to iste ako ... = split / : /,$time
    aj ked to JavaScript vyhodnoti ako "Vyborne" :) To len aby to niekoho nemiatlo ;)

DigiZone.cz: Počet diváků O2 TV přesáhl půl milionu

Počet diváků O2 TV přesáhl půl milionu

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

Vitalia.cz: Tohle je Břicháč Tom, co zhubnul 27 kg

Tohle je Břicháč Tom, co zhubnul 27 kg

Měšec.cz: Banky umí platby na kartu, jen to neříkají

Banky umí platby na kartu, jen to neříkají

120na80.cz: Bonbon si schovejte na přistání

Bonbon si schovejte na přistání

DigiZone.cz: Markíza HD a Dajto? U Digi TV asi minulost

Markíza HD a Dajto? U Digi TV asi minulost

120na80.cz: Řepík má protizánětlivé účinky a detoxikuje

Řepík má protizánětlivé účinky a detoxikuje

Lupa.cz: Japonská invaze. Proč SoftBank kupuje ARM?

Japonská invaze. Proč SoftBank kupuje ARM?

Podnikatel.cz: Výsledek akce Bez Heureky? Terno se nekoná

Výsledek akce Bez Heureky? Terno se nekoná

Lupa.cz: IT scéna po brexitu: přijde exodus vývojářů?

IT scéna po brexitu: přijde exodus vývojářů?

Měšec.cz: Se stavebkem k soudu už (většinou) nemusíte

Se stavebkem k soudu už (většinou) nemusíte

DigiZone.cz: Loewe Subwoofer 300 pro televizory

Loewe Subwoofer 300 pro televizory

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

120na80.cz: Nyní středně velké riziko

Nyní středně velké riziko

Měšec.cz: Co s reklamací, když e-shop krachuje?

Co s reklamací, když e-shop krachuje?

Vitalia.cz: Strečink podle internetu? Raději ne

Strečink podle internetu? Raději ne

Vitalia.cz: Za zánět močových cest mohou plavky

Za zánět močových cest mohou plavky

Vitalia.cz: Sobotní masakr žrádla, chlastu a zábavy

Sobotní masakr žrádla, chlastu a zábavy

DigiZone.cz: Přechod na DVB-T2? Kolem miliardy...

Přechod na DVB-T2? Kolem miliardy...

Měšec.cz: Do ostravské MHD bez jízdenky. Stačí vaše karta

Do ostravské MHD bez jízdenky. Stačí vaše karta