Hledání cesty ven z bludiště patří mezi klasické programátorské úlohy. V tomto příspěvku bych vám chtěl ukázat, jak si lze takový jednoduchý "maze solver" bez větších obtíží naprogramovat v Haskellu.
programování
Občas se lze setkat s názorem, že statická metoda třídy je to stejné, co obyčejná funkce. V tomto krátkém příspěvku vás přesvědčím, proč tomu tak není ;).
V tomto příspěvku se podíváme, jak lze s využitím vlastností jazyka Haskell přímočaře implementovat výpočet tranzitivního uzávěru grafu pomocí Warshallova algoritmu.
Včera jsem s kamarádem řešil, zda a jak lze v C++ načíst celý obsah vstupu do std::string
v jediném příkazu. Pokud by to někoho zajímalo, tak odpověď dává následující krátký příspěvek.
Následující příspěvek je nejen pro ty, kterým kód a[i] = i++;
připadá v pořádku, či kteří si myslí, že rozdíl mezi ++i
a i++
je v tom, že ten druhý způsobí zvýšení hodnoty i
až po dokončení zpracování výrazu, kde se vyskytuje ;).
Za anglický nadpis se omlouvám, ale opravdu mě nenapadl žádný vhodný překlad tohoto slovního spojení ("líné hledání vzorů" či "líný pattern matching" zní divně). Lazy pattern matching (LPM) je typ pattern matchingu (PM), nebo, chcete-li, hledání vzorů, při kterém nedochází k okamžitému navázání hodnoty na vzor, ale až při prvním použití tohoto vzoru. V následujícím příspěvku bych chtěl ukázat, jak tato technika funguje a k čemu se dá použít.
Po delší době přináším další hádanku z oblasti programovacích jazyků C a C++. Tentokrát budeme řešit triviální věc nekonvenčním způsobem. Nic složitého to ale nebude a tak postačí dostatek důvtipu :).
Když se zeptáte programátora v C++ na standardní proudy (streams), tak vám většinou odpoví cin
, cout
a cerr
(případně s kvalifikátorem std::
). Již méně se ale ví, že těchto standardních proudů je více -- patří mezi ně mj. ještě clog
(celkem existuje osm standardních proudů, ale to je pro nás teď nepodstatné). Tento proud a jeho možné využití bych vám chtěl velmi krátce představit v následujícím příspěvku.
S funkcemi, které berou proměnný počet parametrů ("nerdy speaking", mají proměnnou aritu), už se zřejmě každý setkal (nejznámějším příkladem je dvojice funkcí scanf() a printf()). V C99 byla zavedena podpora i pro makra s proměnným počtem parametrů (variadic macros, někdy překládáno jako "variadická makra"). Jak taková věc vypadá a k čemu to lze použít se dozvíte v následujícím příspěvku.
Před pár dny mi konečně došla nová kniha od A. Stepanova (autor C++ STL) a P. McJonese, nazvaná Elements of Programming (EOP), která byla vydána v roce 2009. Tuto knihu, která bývá srovnávána s Knuthovým The Art of Computer Programming (TAOCP) (ať už svými myšlenkami, či matematickou náročností), bych vám chtěl v následujícím příspěvku velmi krátce představit.