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 20:44 | Komunita

    Sovereign Tech Agency (Wikipedie), tj. agentura zabezpečující financování svobodného a otevřeného softwaru německou vládou, podpoří GFortran částkou 360 000 eur.

    Ladislav Hagara | Komentářů: 0
    dnes 14:00 | IT novinky

    Microsoft hodlá zrušit zhruba tři procenta pracovních míst. Microsoft na konci loňského června zaměstnával kolem 228.000 lidí. Tři procenta z tohoto počtu představují téměř 7000 pracovních míst.

    Ladislav Hagara | Komentářů: 5
    dnes 13:33 | IT novinky

    V říjnu loňského roku provedl Úřad pro ochranu hospodářské soutěže (ÚOHS) místní šetření u společnosti Seznam.cz. Krajský soud v Brně tento týden konstatoval, že toto šetření bylo nezákonné.

    Ladislav Hagara | Komentářů: 6
    včera 22:22 | Bezpečnostní upozornění

    Branch Privilege Injection (CVE-2024-45332, Paper) je nejnovější bezpečnostní problém procesorů Intel. Intel jej řeší ve včerejším opravném vydání 20250512 mikrokódů pro své procesory. Neprivilegovaný uživatel si například může přečíst /etc/shadow (YouTube).

    Ladislav Hagara | Komentářů: 2
    včera 14:22 | Komunita

    Dle plánu byl vývoj Firefoxu přesunut z Mercurialu na Git. Oficiální repozitář se zdrojovými kódy je na GitHubu.

    Ladislav Hagara | Komentářů: 7
    včera 04:33 | Bezpečnostní upozornění

    V terminálovém multiplexoru GNU Screen byly nalezeny a v upstreamu ve verzi 5.0.1 už opraveny bezpečnostních chyby CVE-2025-23395, CVE-2025-46802, CVE-2025-46803, CVE-2025-46804 a CVE-2025-46805. Podrobnosti na blogu SUSE Security Teamu.

    Ladislav Hagara | Komentářů: 41
    12.5. 19:33 | Bezpečnostní upozornění

    Training Solo (Paper, GitHub) je nejnovější bezpečnostní problém procesorů Intel s eIBRS a některých procesorů ARM. Intel vydal opravnou verzi 20250512 mikrokódů pro své procesory.

    Ladislav Hagara | Komentářů: 0
    12.5. 11:44 | Nová verze

    Byla vydána nová verze 25.05.11 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Nejnovější Shotcut je již vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    12.5. 11:11 | Nová verze

    Svobodný elektronický platební systém GNU Taler (Wikipedie, cgit) byl vydán ve verzi 1.0. GNU Taler chrání soukromí plátců a zároveň zajišťuje, aby byl příjem viditelný pro úřady. S vydáním verze 1.0 byl systém spuštěn ve Švýcarsku.

    Ladislav Hagara | Komentářů: 10
    12.5. 00:55 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 209. brněnský sraz, který proběhne tento pátek 16. května od 18:00 ve studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Jelikož se Brno stalo jedním z hlavních míst, kde se vyvíjí open source knihovna OpenSSL, tentokrát se OpenAlt komunita potká s komunitou OpenSSL. V rámci srazu Anton Arapov z OpenSSL

    … více »
    Ladislav Hagara | Komentářů: 0
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (3%)
     (1%)
     (0%)
     (3%)
    Celkem 611 hlasů
     Komentářů: 26, poslední 8.5. 09:58
    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: 286×
    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.