abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:11 | Komunita

    Na webu konference Den IPv6, která se konala 4. června v Národní technické knihovně v pražských Dejvicích, jsou nyní k dispozici všechny prezentace (v PDF) a jejich videozáznamy. Organizátory konference byly i letos sdružení CESNET, CZ.NIC a NIX.CZ.

    VSladek | Komentářů: 0
    dnes 13:11 | Nová verze

    Byla vydána nová verze 9.1.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Vypíchnout lze vylepšené vyhledávání nebo podporu Pixel Motion Photos. Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.

    Ladislav Hagara | Komentářů: 0
    dnes 11:44 | Pozvánky

    Přihlaste svou přednášku na další ročník konference LinuxDays, který proběhne 3. a 4. října na FIT ČVUT v pražských Dejvicích. Příjem témat poběží do konce prázdnin, pak proběhne veřejné hlasování a následně sestavení programu.

    Petr Krčmář | Komentářů: 2
    dnes 04:44 | Nová verze

    Byla vydána nová verze 2.4.68 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 13 zranitelností.

    Ladislav Hagara | Komentářů: 2
    včera 22:44 | IT novinky

    Apple na své vývojářské konferenci WWDC26 (Worldwide Developers Conference, keynote) představil řadu novinek. Vypíchnout lze novou generaci Apple Intelligence a zbrusu novou Siri, která dostala název Siri AI. Kvůli Aktu o digitálních trzích (DMA) však funkce Siri AI nebudou v systémech iOS 27 a iPadOS 27 k dispozici uživatelům v Evropské unii.

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | Nová verze

    Byla vydána nová verze 1.18.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Vypíchnout lze podporu rozhraní /dev/kfd pro výpočty na kartách AMD (AMDKFD).

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Nová verze

    aMule (Wikipedie), tj. multiplatformní klient pro peer-to-peer sdílení souborů pro sítě eD2k and Kademlia, byl po více než pěti letech od vydání poslední verze 2.3.3, vydán v nové major verzi 3.0.0 (GitHub). S novou webovou stránkou a dokumentací.

    Ladislav Hagara | Komentářů: 5
    včera 12:55 | IT novinky

    Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 29. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | IT novinky

    Evropská komise předložila evropský balíček pro technologickou suverenitu, tedy soubor opatření, která mají posílit kapacity EU v oblasti polovodičů, umělé inteligence, cloudu a open source. To Evropě pomůže stát se lídrem v oblasti umělé inteligence, posílit její digitální autonomii a vytvářet podmínky pro udržitelnější digitální budoucnost.

    Ladislav Hagara | Komentářů: 15
    včera 04:44 | Nová verze

    OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána v nové major verzi 5.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (15%)
     (31%)
     (3%)
     (6%)
     (3%)
     (15%)
     (26%)
    Celkem 1856 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Zjednodusenie lisp-like interpretra v JS

    30.11.2016 15:48 gsnak | skóre: 22 | blog: gsnak
    Zjednodusenie lisp-like interpretra v JS
    Přečteno: 312×
    Mam nasledovny lisp-like interpreter v JS:
    var fun = {
        "+": function (a) { return a.reduce(function (a, b) { return a + b; }); },
        "-": function (a) { return a.reduce(function (a, b) { return a - b; }); },
        "*": function (a) { return a.reduce(function (a, b) { return a * b; }); },
        "/": function (a) { return a.reduce(function (a, b) { return a / b; }); }
    };
    
    function lisp(aCode) {
        var i, fn, arg;
        if (Array.isArray(aCode)) {
            fn = aCode[0];
            arg = aCode.slice(1);
            for (i = 0; i < arg.length; i++) {
                if (Array.isArray(arg[i])) {
                    arg[i] = lisp(arg[i]);
                }
            }
            return fun[fn](arg);
        }
        return aCode;
    }
    
    console.log(lisp(["/", 22, ["-", 10, ["+", 1, 1, 1]]]));
    console.log(22 / (10 - (1 + 1 + 1)));
    Ale ta hlavna funkcia lisp() sa mi zda neelegantna, nevedeli by ste niekto napisat ju elegantnejsie? Myslim ze to ide zapisat este kratsie.
    Čo Rys, to vrah!

    Řešení dotazu:


    Odpovědi

    wamba avatar 30.11.2016 19:27 wamba | skóre: 38 | blog: wamba
    Rozbalit Rozbalit vše Re: Zjednodusenie lisp-like interpretra v JS
    Podle mě je tam podruhý ten if zbytečně. A možná bych raději testoval, kdy to není Array, abych měl zanořený jen ten return aCode a ne celý ten blok.
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    1.12.2016 09:09 gsnak | skóre: 22 | blog: gsnak
    Rozbalit Rozbalit vše Re: Zjednodusenie lisp-like interpretra v JS
    Jo, mas pravdu, ten druhy if tam bol zbytocne.
    Čo Rys, to vrah!
    1.12.2016 09:12 gsnak | skóre: 22 | blog: gsnak
    Rozbalit Rozbalit vše Re: Zjednodusenie lisp-like interpretra v JS
    Aj to znizenie odsadenia pomohlo:
    function lisp(aCode) {
        var i, fn, arg;
        if (!Array.isArray(aCode)) {
           return aCode;
        }
        fn = aCode[0];
        arg = aCode.slice(1);
        for (i = 0; i < arg.length; i++) {
            arg[i] = lisp(arg[i]);
        }
        return fun[fn](arg);
    }
    Čo Rys, to vrah!

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.