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.
Titulek berte s rezervou, nevěděl jsem totiž, jak tenhle příspěvek pojmenovat lépe. Chtěl bych zde zmínit filmy, které mně osobně učarovaly natolik, že mi utkvěly v paměti a při vhodné příležitosti se na ně vždy rád podívám znovu. Filmy, které jsou něčím výjimečné. Nejde ani o to, zda jsou "nejlepší" (to je těžko hodnotitelné kritérium), ale prostě je považuji za (pro mě) kultovní. A proč 19? :) Stejně dobré číslo, jako jakékoliv jiné...
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.
Později než ovbykle, ale přece :). Zkouškové pro mě skončilo, známky mám v informačním systému a tedy, již tradičně, bych chtěl v následujícím příspěvku shrnout, jaké byly mé předměty v zimním semestru a zda se naplnilo mé očekávání ze září 2009.