Richard Biener oznámil vydání verze 16.1 (16.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 16. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
Zulip Server z open source komunikační platformy Zulip (Wikipedie, GitHub) byl vydán ve verzi 12.0. Přehled novinek v příspěvku na blogu.
Před 30 lety, tj. v úterý 30. dubna 1996, byl spuštěn Seznam.cz.
Byly zpracovány a zveřejněny všechny videozáznamy, které stojí za zveřejnění, z konference FOSDEM 2026.
Od úterý 28. dubna musí nově uváděné notebooky v Evropské unii podporovat nabíjení přes USB-C. Jednotná nabíječka byla schválena Evropským parlamentem v říjnu 2022.
Byly publikovány informace o kritické zranitelnosti CVE-2026-31431 pojmenované Copy Fail v Linuxu, konkrétně v kryptografii (AF_ALG). Běžný uživatel může získat práva roota (lokální eskalaci práv). Na všech distribucích Linuxu vydaných od roku 2017. Pomocí 732bajtového skriptu. V upstreamu je již opraveno. Zranitelnost byla nalezena pomocí AI Xint Code.
Textový editor Zed dospěl do verze 1.0. Představení v příspěvku na blogu.
Vývojáři svobodného 3D softwaru Blender představili (𝕏, Mastodon, Bluesky) nejnovějšího firemního sponzora Blenderu. Je ním společnost Anthropic stojící za AI Claude a úroveň sponzoringu je Patron, tj. minimálně 240 tisíc eur ročně. Anthropic oznámil sponzorství v tiskové zprávě Claude for Creative Work.
VNC server wayvnc pro Wayland kompozitory postavené nad wlroots - ne GNOME, KDE nebo Weston - byl vydán ve verzi 0.10.0. Vydána byla také verze 1.0.0 související knihovny neatvnc.
Bylo oznámeno vydání Fedora Linuxu 44. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách
… více »
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.
Řešení dotazu:
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.
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);
}
Tiskni
Sdílej: