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 14:55 | IT novinky

    Společnost DuckDuckGo rozšířila svůj AI chat Duck.ai o GPT-5 mini (𝕏). Duck.ai umožňuje anonymní přístup bez vytváření účtů k několika modelům umělé inteligence. Aktuálně k GPT-4o mini, GPT-5 mini, Llama 4 Scout, Claude Haiku 3.5 a Mistral Small 3.

    Ladislav Hagara | Komentářů: 2
    dnes 12:44 | Bezpečnostní upozornění

    Marek Tóth v příspěvku DOM-based Extension Clickjacking: Data ve správcích hesel v ohrožení na svém blogu popsal novou clickjacking techniku s několika variantami útoků a otestoval ji proti 11 správcům hesel. Výsledkem bylo nalezení několika 0-day zranitelností, které mohly ovlivnit uložená data desítek milionů uživatelů. Jedno kliknutí kdekoliv na webové stránce kontrolované útočníkem umožňovalo ukrást uživatelská data ze

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 21:11 | IT novinky

    Na dnešní akci Made by Google 2025 (YouTube) byly představeny telefony Pixel 10 s novým čipem Google Tensor G5 a novými AI funkcemi, hodinky Pixel Watch 4 a sluchátka Pixel Buds 2a.

    Ladislav Hagara | Komentářů: 24
    včera 14:11 | Nová verze

    The Document Foundation oznámila vydání nové major verze 25.8 svobodného kancelářského balíku LibreOffice. Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání (cs) a také na Youtube a PeerTube.

    Ladislav Hagara | Komentářů: 14
    včera 04:00 | Nová verze

    Zeek (Wikipedie), původně Bro, byl vydán v nové major verzi 8.0.0. Jedná se o open source platformu pro analýzu síťového provozu. Vyzkoušet lze online.

    Ladislav Hagara | Komentářů: 0
    19.8. 23:55 | Zajímavý software

    Emacs na stříhání videa? Klidně.

    Ladislav Hagara | Komentářů: 7
    19.8. 15:55 | Nová verze

    Byl vydán Mozilla Firefox 142.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 142 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    19.8. 13:22 | Zajímavý článek

    Python Developers Survey 2024, výsledky průzkumu mezi vývojáři v Pythonu organizovaném Python Software Foundation ve spolupráci se společností JetBrains v říjnu a listopadu loňského roku. Zúčastnilo se 30 tisíc vývojářů z 200 zemí. Linux používá 59 % z nich.

    Ladislav Hagara | Komentářů: 0
    19.8. 04:00 | Zajímavý článek

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 3
    19.8. 01:55 | Nová verze

    Byla vydána nová verze 2.51.0 distribuovaného systému správy verzí Git. Přispělo 91 vývojářů, z toho 21 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 2
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (78%)
     (11%)
     (5%)
     (3%)
     (3%)
     (0%)
    Celkem 37 hlasů
     Komentářů: 6, poslední dnes 13:35
    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: 290×
    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.