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: ČTÚ květen: rušení TV vysílání narůstá

ČTÚ květen: rušení TV vysílání narůstá

Lupa.cz: U Chomutova vyroste dotované datacentrum

U Chomutova vyroste dotované datacentrum

Vitalia.cz: Jelení farma produkuje kvalitní maso

Jelení farma produkuje kvalitní maso

Měšec.cz: Cestujte bez starostí, získejte výhodné pojištění

Cestujte bez starostí, získejte výhodné pojištění

Podnikatel.cz: Český podnikatel a #brexit. Co nastane?

Český podnikatel a #brexit. Co nastane?

Lupa.cz: Vydavatelé jsou v háji, ale neumí si to připustit

Vydavatelé jsou v háji, ale neumí si to připustit

Měšec.cz: Práce na tři směny? Neblázněte, mám doma psa

Práce na tři směny? Neblázněte, mám doma psa

Podnikatel.cz: Babiš představil daňovou revoluci Moje daně

Babiš představil daňovou revoluci Moje daně

Vitalia.cz: Margit Slimáková nesnáší rajskou, Petr Fořt pizzu

Margit Slimáková nesnáší rajskou, Petr Fořt pizzu

Měšec.cz: Vyplatí se spořit přes DPS?

Vyplatí se spořit přes DPS?

Podnikatel.cz: Zůstat na Heurece je čiré bláznovství

Zůstat na Heurece je čiré bláznovství

Vitalia.cz: Průšvih je tuk, který nevidíte

Průšvih je tuk, který nevidíte

Lupa.cz: Vzali věc, která fungovala, a přidali internet

Vzali věc, která fungovala, a přidali internet

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

DigiZone.cz: Mobilní aplikace pro DVTV je tady

Mobilní aplikace pro DVTV je tady

Měšec.cz: Rusové platí mobilem. Funguje to i v Česku

Rusové platí mobilem. Funguje to i v Česku

Lupa.cz: Jaké IoT tarify nabízejí mobilní operátoři?

Jaké IoT tarify nabízejí mobilní operátoři?

DigiZone.cz: Kritické poznámky k DVB-T2

Kritické poznámky k DVB-T2

Vitalia.cz: Epidemie: Klíšťová encefalitida po ovčím sýru

Epidemie: Klíšťová encefalitida po ovčím sýru

DigiZone.cz: Satelitní Flix TV vyráží do boje

Satelitní Flix TV vyráží do boje