February 22nd, 2008
go to english version »
Znáte Foldr? Foldr je funkce, kterou najdeme ve většině funkcionálních jazycích jako je například Haskell (Foldr) či F# (List.Fold_r). Jedná se o velice užitečnou funkci pokud potřebujete zpracovat jednotlivé prvky pole a vrátit jako jeden výsledek (ne pole). Takovým příkladem by mohlo být například sečtení všech čísel v poli.
Foldr není součástí .NET frameworku! Implementaci této funkce najdete na konci tohoto článku.
Funkce Foldr má 3 parametry, první je zpracovávané pole (list), pak defaultní hodnota (def), která je použita jako poslední prvek pole a funkce (fun), která je volána na každé dva sousední prvky pole.
forma: Foldr ( list, def, fun )
Jak to tedy funguje? Řekněme, že potřebujete sečíst všechna čísla v poli…
Teorie
forma: Foldr ( list, def, fun )
kód: Foldr ( { 1, 2, 3, 4 }, 0, + )
sečtení: 1 + (2 + (3 + (4 + 0))) = 10
Read the rest of this entry »
Posted in .NET, Func. programming | No Comments »
January 27th, 2008
go to english version »
V nové verzi C# 3.0 můžeme najít nové vlastnosti, které známe spíše z funkcionálních jazyků (například lambda expressions). Když jsem ale zpočátku zkoušel různé základní funkcionální postupy, byl jsem celkem zklamaný - nemohl jsem nadeklarovat rekurzivní funkci.
Jaký byl tedy problém? Podívejme se na implementaci jednoduché funkce factorial (int -> int) - má jeden parameter int a vrací int:
Test 1
Func<int, int> fac = x => x == 0 ? 1 : x + fac(x - 1)
Toto je optimální jednořádkové řešení, které ale bohužel v C# nefunguje, dostaneme chybu “Use of unassigned local variable ‘fac’“. Nemůžeme takto psát rekurzivní funkce, protože compiler nezná naši fac funkci při rekurzivním volání.
Test 2
Zkusíme tedy nadeklarovat fac funkci o jeden řádek dřív:
Func<int, int> fac;
fac = x => x == 0 ? 1 : x + fac(x - 1);
Stejná chyba, “Use of unassigned local variable ‘fac’”
Test 3
Func<int, int> fac = null;
fac = x => x == 0 ? 1 : x + fac(x - 1);
Toto řešení již funguje, pokud tedy chceme volat funkci rekurzivně, musíme ji nadeklarovat a přiřadit hodnotu null dřív, před implementací samotné funkce. Nicméně jak můžeme vidět, C# 3.0 nám nedovolí deklarovat ’sexy’ jednořádkové funkce.
Posted in .NET, Func. programming | No Comments »
January 18th, 2008
Je to asi dva měsíce, co Internetem proběhla zpráva o uvolnění zdrojových kódů .NET Frameworku s podporou debugování ve Visual Studiu 2008. A počínaje dnešním dnem již toho může plně využít kdokoliv! Takže podívejme se jak na to.
Read the rest of this entry »
Posted in .NET | No Comments »
January 10th, 2008
Microsoft rozjíždí novou službu Office Live Workspace. Jedná se o rozšíření vašeho pracovního prostoru na Internet, kde můžete mít uloženy své Office dokumenty a přistupovat k nim z různých počítačů na Internetu. Otevírat, editovat či ukládat dokumenty lze přímo pomocí Microsoft Office připojenému k vašemu workspace.
Dále můžete do vašeho prostoru pozvat ostatní uživatele a sdílet dokumenty s nimy, vytvářet a sdílet kalendáře či synchronizovat kontakty z Outlooku.
Můžu si to vyzkoušet? Ne…
Tato služba ještě nebyla zprovozněna. Výše uvedené informace jsou pouze sumarizací toho co Office Live Team uvádí na svých stránkách. Proč se tedy o této službe zmiňuji? Na stránkách Office Live Workspace ^ byla otevřena zdarma před-registrace na tuto službu, takže se dá očekávat brzské zprovoznění služby.
Pokud si tedy chcete služu zdarma vyzkoušet, neváhejte a využijte možnosti bezplatné před-registrace na stránkách http://r.office.microsoft.com/r/rlidOLWFullSignup ^. Po registraci dostanete potvrzující e-mail s informací, že jakmile bude beta verze Office Live Workspace spuštěna, budou vám zaslány informace o přístupu k vašemu pracovnímu prostoru.
Posted in jiné | 3 Comments »
January 7th, 2008
go to english version »
Našel jsem jednoduchou ale někdy užitečnou vlastnost v LINQu, pokud potřebujete definovat lokální proměnou v LINQ dotazu, můžete použít klíčové slovo let.
Sample
Funkce vracející druhou mocninu čísel a navíc pouze pokud je výsledek sudé číslo:
int[] list = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
IEnumerable<int> x = from l in list
let dbl = l * l
where dbl % 2 == 0
select dbl;
// vysledek => 4, 16, 36, 64, 100
Posted in .NET, LINQ | No Comments »
January 6th, 2008
This is quick introduction to F# and its syntax for Haskell programmers. In this article, you can find essential operations written in both Haskell and F#. So if you have already some experience with Haskell then it will be easy to get into the secrets of F#.
Basics, Functions, Lists, Types and some others…
Read the rest of this entry »
Posted in .NET, Func. programming | 2 Comments »
December 14th, 2007
Už asi tři .. možná čtyři roky, jediný prohlížeč který používám je Opera. Proč Operu?
Opera je podle mne nejrychlejší prohlížeč a v základní instalaci mi poskytuje všechny features, které potřebuji … a to je mimochodem taky důvod, proč nepoužívám Firefox a Linux - ačkoliv možnost výběru tisíců pluginů a milionů možností nastavení je pro mnoho geeků výhoda, pro mě ne, protože nemám čas … nebo spíš náladu, hledat a instalovat další potřebné části svého prohlížeče. Zároveň pokud si sednu k jakémukoliv počítači s Operou, nemusím se starat o to, zda umí či neumí na to co já jsem zvyklí.
Pro mne je tedy Opera jasný favorit … teda byl …
Read the rest of this entry »
Posted in jiné | 3 Comments »
August 13th, 2007
Imagine Cup 2007 je tedy již za námi, umístili jsme se na 7.-12. místě - mohlo to být lepší, ale postoupit mezi 12 nejlepších určitě taky není k špatné.
A co jsme za tento úspěch dostali od Microsoftu? :]
Moje fotografie z celého Imagine Cupu naleznete na
http://www.zooomr.com/photos/andysko/sets/24583 ^
Jiné fotografie nebo videa z Imagine Cupu - viz. dále.
Read the rest of this entry »
Posted in Imagine Cup | No Comments »
August 11th, 2007
Po 3 hodinách spánku jsme v 6 hodin ráno vstávali a šli již zbaleni na naši poslední snídani. Od hotelu jsme odjížděli v 8:30 autobusem na letiště Incheon. Z Korei jsme odlétli v 12:50 a po 9.5 hodinách jsme byli v Moskvě. Letěli jsme ruským Iljušinem což byl nezapometulný zážitek. Z ruského letiště jsme po hodině odlětěli Airbusem směr Praha, kam jsme kolem osmé hodiny večerní v pořádku dorazili.
Fotografie z celého Imagine Cupu naleznete na
http://www.zooomr.com/photos/andysko/sets/24583 ^
Posted in Imagine Cup | No Comments »
August 10th, 2007
Poslední den dopoledne bylo vyhrazeno na prezentaci projektů novinářům, firmám a také jiným soutěžícím, kteří se zajímali o soutěžní projekty. Odpoledne jsme si zašli do města podívat se po obchodech a nakoupit nějaké dárky. Večer byla naplánovaná rozlučková párty pro soutěžící, novináře, mentory, mikrosofťáky a pro všechny, kteří se podíleli na soutěži. Akce to byla opravdu podařená a fotografie stojí za to :]
Fotografie z tohoto dne naleznete na
Fotografie z celého Imagine Cupu naleznete na
http://www.zooomr.com/photos/andysko/sets/24583 ^
Posted in Imagine Cup | No Comments »