<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Komentáře k příspěvku: Closures v C#</title>
	<atom:link href="http://www.augi.cz/programovani/closures-v-c/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.augi.cz/programovani/closures-v-c/</link>
	<description>Blogísek jednoho vývojáře...</description>
	<lastBuildDate>Sun, 19 May 2013 17:42:02 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>Od: Petr Krebs</title>
		<link>http://www.augi.cz/programovani/closures-v-c/comment-page-1/#comment-41487</link>
		<dc:creator>Petr Krebs</dc:creator>
		<pubDate>Wed, 01 Feb 2012 15:12:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.augi.cz/?p=432#comment-41487</guid>
		<description><![CDATA[Je třeba podotknout, že chování closures nad iteračními proměnnými (zde popsáno na začátku sekce &quot;Vhnízděné closures&quot;) se bude v další verzi C# měnit. 

Viz http://blogs.msdn.com/b/ericlippert/archive/2009/11/16/closing-over-the-loop-variable-part-two.aspx

Jsem za to rád. Případů, kdy se něčí kód, napsaný intuitivně, leč bez 100% znalosti chování closures, byl díky tomuto chybný, jsem zaregistroval několik. Já sám jsem si tohoto chování všiml až teprve v momentě, kdy mě na něj upozornil Resharper, a to jsem se do té doby považoval za relativně &quot;poučeného&quot; :-)]]></description>
		<content:encoded><![CDATA[<p>Je třeba podotknout, že chování closures nad iteračními proměnnými (zde popsáno na začátku sekce &#8222;Vhnízděné closures&#8220;) se bude v další verzi C# měnit. </p>
<p>Viz <a href="http://blogs.msdn.com/b/ericlippert/archive/2009/11/16/closing-over-the-loop-variable-part-two.aspx" rel="nofollow">http://blogs.msdn.com/b/ericlippert/archive/2009/11/16/closing-over-the-loop-variable-part-two.aspx</a></p>
<p>Jsem za to rád. Případů, kdy se něčí kód, napsaný intuitivně, leč bez 100% znalosti chování closures, byl díky tomuto chybný, jsem zaregistroval několik. Já sám jsem si tohoto chování všiml až teprve v momentě, kdy mě na něj upozornil Resharper, a to jsem se do té doby považoval za relativně &#8222;poučeného&#8220; <img src='http://www.augi.cz/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: P</title>
		<link>http://www.augi.cz/programovani/closures-v-c/comment-page-1/#comment-34754</link>
		<dc:creator>P</dc:creator>
		<pubDate>Mon, 07 Nov 2011 15:31:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.augi.cz/?p=432#comment-34754</guid>
		<description><![CDATA[Jen drobnost, řídící proměnná for cyklu nemá scope na celé metodě,alespoň dle MSDN:

The scope of a local variable declared in a for-initializer of a for statement (Section 8.8.3) is the for-initializer, the for-condition, the for-iterator, and the contained statement of the for statement.

Tuším, že to mělo co dělat s životnosti dané proměnné.]]></description>
		<content:encoded><![CDATA[<p>Jen drobnost, řídící proměnná for cyklu nemá scope na celé metodě,alespoň dle MSDN:</p>
<p>The scope of a local variable declared in a for-initializer of a for statement (Section 8.8.3) is the for-initializer, the for-condition, the for-iterator, and the contained statement of the for statement.</p>
<p>Tuším, že to mělo co dělat s životnosti dané proměnné.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Pazu</title>
		<link>http://www.augi.cz/programovani/closures-v-c/comment-page-1/#comment-20395</link>
		<dc:creator>Pazu</dc:creator>
		<pubDate>Fri, 04 Feb 2011 18:05:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.augi.cz/?p=432#comment-20395</guid>
		<description><![CDATA[Obdobné články, hlavní koncept pro closures je &quot;zachycení&quot; = capture
http://blogs.msdn.com/b/abhinaba/archive/2005/10/18/482180.aspx
http://csharpindepth.com/Articles/Chapter5/Closures.aspx]]></description>
		<content:encoded><![CDATA[<p>Obdobné články, hlavní koncept pro closures je &#8222;zachycení&#8220; = capture<br />
<a href="http://blogs.msdn.com/b/abhinaba/archive/2005/10/18/482180.aspx" rel="nofollow">http://blogs.msdn.com/b/abhinaba/archive/2005/10/18/482180.aspx</a><br />
<a href="http://csharpindepth.com/Articles/Chapter5/Closures.aspx" rel="nofollow">http://csharpindepth.com/Articles/Chapter5/Closures.aspx</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Aleš Roubíček</title>
		<link>http://www.augi.cz/programovani/closures-v-c/comment-page-1/#comment-19632</link>
		<dc:creator>Aleš Roubíček</dc:creator>
		<pubDate>Sun, 09 Jan 2011 12:53:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.augi.cz/?p=432#comment-19632</guid>
		<description><![CDATA[Z definice musí a je. viz třeba http://en.wikipedia.org/wiki/First-class_function]]></description>
		<content:encoded><![CDATA[<p>Z definice musí a je. viz třeba <a href="http://en.wikipedia.org/wiki/First-class_function" rel="nofollow">http://en.wikipedia.org/wiki/First-class_function</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Zilog</title>
		<link>http://www.augi.cz/programovani/closures-v-c/comment-page-1/#comment-19628</link>
		<dc:creator>Zilog</dc:creator>
		<pubDate>Sun, 09 Jan 2011 10:37:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.augi.cz/?p=432#comment-19628</guid>
		<description><![CDATA[Je to tak - funkce, coby (pseudo)kod kdesi v pameti, je vzdy z principu &quot;ukazatelovita&quot;. Pouze pokud jazyk explicitne pointery nezavadi, neni to hmatatelne, ale k firstclassovitosti to nestaci, pokud funkci nejde pouzivat ala datovy typ s hodnotou (nemusi to byt primo objekt).]]></description>
		<content:encoded><![CDATA[<p>Je to tak &#8211; funkce, coby (pseudo)kod kdesi v pameti, je vzdy z principu &#8222;ukazatelovita&#8220;. Pouze pokud jazyk explicitne pointery nezavadi, neni to hmatatelne, ale k firstclassovitosti to nestaci, pokud funkci nejde pouzivat ala datovy typ s hodnotou (nemusi to byt primo objekt).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Augi</title>
		<link>http://www.augi.cz/programovani/closures-v-c/comment-page-1/#comment-19627</link>
		<dc:creator>Augi</dc:creator>
		<pubDate>Sun, 09 Jan 2011 10:08:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.augi.cz/?p=432#comment-19627</guid>
		<description><![CDATA[Díky za doplnění!
1) Máš pravdu. Nechtěl jsem ale zabíhat do &lt;em&gt;zbytečných&lt;/em&gt; detailů, protože jsem zjistil, že většina (i jinak velmi dobrých) programátorů nemá ponětí o tom, že se něco takového na pozadí vůbec děje.
2) Toho jsem si všiml u nějakého tvého blogpostu - moc pěkný trik :-) Ale to si schovávám do připravovaného článku &quot;C# - tipy a triky&quot; (ano, konečně jsem dočetl CLR via C# :) ).
3) O tom asi radši blogovat nebudu, protože bych měl strach, že hodně čtenářů by vyvolalo &lt;em&gt;StackOverflowException&lt;/em&gt; už při vysvětlování y-combinatoru :-) (sám jsem měl na krajíčku)

Ale pro odvážné nabízím zajímavé zdroje k nastudování:
&lt;a href=&quot;http://blog.jcoglan.com/2008/01/10/deriving-the-y-combinator/&quot; rel=&quot;nofollow&quot;&gt;Y-combinator&lt;/a&gt; - sice v JavaScriptu, ale přijde mi to nejsrozumitelnější
&lt;a href=&quot;http://blogs.msdn.com/b/wesdyer/archive/2007/01/29/currying-and-partial-function-application.aspx&quot; rel=&quot;nofollow&quot;&gt;Currying a aplikace parciálních metod v C#&lt;/a&gt;
&lt;a href=&quot;http://blogs.msdn.com/b/wesdyer/archive/2007/02/02/anonymous-recursion-in-c.aspx&quot; rel=&quot;nofollow&quot;&gt;Y-combinator v C#&lt;/a&gt;]]></description>
		<content:encoded><![CDATA[<p>Díky za doplnění!<br />
1) Máš pravdu. Nechtěl jsem ale zabíhat do <em>zbytečných</em> detailů, protože jsem zjistil, že většina (i jinak velmi dobrých) programátorů nemá ponětí o tom, že se něco takového na pozadí vůbec děje.<br />
2) Toho jsem si všiml u nějakého tvého blogpostu &#8211; moc pěkný trik <img src='http://www.augi.cz/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Ale to si schovávám do připravovaného článku &#8222;C# &#8211; tipy a triky&#8220; (ano, konečně jsem dočetl CLR via C# <img src='http://www.augi.cz/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).<br />
3) O tom asi radši blogovat nebudu, protože bych měl strach, že hodně čtenářů by vyvolalo <em>StackOverflowException</em> už při vysvětlování y-combinatoru <img src='http://www.augi.cz/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  (sám jsem měl na krajíčku)</p>
<p>Ale pro odvážné nabízím zajímavé zdroje k nastudování:<br />
<a href="http://blog.jcoglan.com/2008/01/10/deriving-the-y-combinator/" rel="nofollow">Y-combinator</a> &#8211; sice v JavaScriptu, ale přijde mi to nejsrozumitelnější<br />
<a href="http://blogs.msdn.com/b/wesdyer/archive/2007/01/29/currying-and-partial-function-application.aspx" rel="nofollow">Currying a aplikace parciálních metod v C#</a><br />
<a href="http://blogs.msdn.com/b/wesdyer/archive/2007/02/02/anonymous-recursion-in-c.aspx" rel="nofollow">Y-combinator v C#</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Rene Stein</title>
		<link>http://www.augi.cz/programovani/closures-v-c/comment-page-1/#comment-19624</link>
		<dc:creator>Rene Stein</dc:creator>
		<pubDate>Sun, 09 Jan 2011 08:29:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.augi.cz/?p=432#comment-19624</guid>
		<description><![CDATA[Moc pěkné shrnutí.
Jen pár poznámek:
1)Když už ukazuješ, jak vypadají třídy generované kompilátorem,  možná by stálo za to ukázat, za jakých okolností je generována metoda ve stávající třídě, kdy v samostatné třídě, proč dostaneme občas warning o neverifikovatlném kódu při volání base.xyz atd.
2) U anonymních metod by stálo za zmínku, že mají oproti lambdám jedinou výhodu.  Když argumenty metody nepoužíváme, nenemusíme je u anonymní metody ani deklarovat. Tose dá využít třeba u událostí, kdy se přiřadí události výchozí null handler a není nutné testovat událost při vyvolávání, jestli má hodnotu null.
public event EventHandler StateChanged = delegate{};
3) Když budeš psát další verzi článku, myslím, že člověk skutečně pochopí lambdy, když si napíše YKombinator a parciálni aplikaci metod (i currying). :D :D]]></description>
		<content:encoded><![CDATA[<p>Moc pěkné shrnutí.<br />
Jen pár poznámek:<br />
1)Když už ukazuješ, jak vypadají třídy generované kompilátorem,  možná by stálo za to ukázat, za jakých okolností je generována metoda ve stávající třídě, kdy v samostatné třídě, proč dostaneme občas warning o neverifikovatlném kódu při volání base.xyz atd.<br />
2) U anonymních metod by stálo za zmínku, že mají oproti lambdám jedinou výhodu.  Když argumenty metody nepoužíváme, nenemusíme je u anonymní metody ani deklarovat. Tose dá využít třeba u událostí, kdy se přiřadí události výchozí null handler a není nutné testovat událost při vyvolávání, jestli má hodnotu null.<br />
public event EventHandler StateChanged = delegate{};<br />
3) Když budeš psát další verzi článku, myslím, že člověk skutečně pochopí lambdy, když si napíše YKombinator a parciálni aplikaci metod (i currying). <img src='http://www.augi.cz/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  <img src='http://www.augi.cz/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Augi</title>
		<link>http://www.augi.cz/programovani/closures-v-c/comment-page-1/#comment-19623</link>
		<dc:creator>Augi</dc:creator>
		<pubDate>Sun, 09 Jan 2011 08:29:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.augi.cz/?p=432#comment-19623</guid>
		<description><![CDATA[Však verze CLR je pro FW 2.0 a FW 3.5 stejná (2.0), tak proč by ne? :-) Ale pro klid tvé duše jsem to upravil ;-)]]></description>
		<content:encoded><![CDATA[<p>Však verze CLR je pro FW 2.0 a FW 3.5 stejná (2.0), tak proč by ne? <img src='http://www.augi.cz/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Ale pro klid tvé duše jsem to upravil <img src='http://www.augi.cz/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Yossarian</title>
		<link>http://www.augi.cz/programovani/closures-v-c/comment-page-1/#comment-19618</link>
		<dc:creator>Yossarian</dc:creator>
		<pubDate>Sun, 09 Jan 2011 02:47:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.augi.cz/?p=432#comment-19618</guid>
		<description><![CDATA[Ja bych jen doplnil, ze 
&lt;code&gt;
public class Test
{
  public delegate string TestDelegate(int i); // deklarace typu
  // to same jako Func
 
  public static void Main()
  {
    Func d = delegate(int i) { return i.ToString(); };
    Console.WriteLine(d(1));
  }
}
&lt;/code&gt;

v c# 2.0 neprelozis, neb Func je az v 3.5 frameworku.. Nebo se da starsi kompilator nastavit proti novymu FW? :)]]></description>
		<content:encoded><![CDATA[<p>Ja bych jen doplnil, ze<br />
<code><br />
public class Test<br />
{<br />
  public delegate string TestDelegate(int i); // deklarace typu<br />
  // to same jako Func</p>
<p>  public static void Main()<br />
  {<br />
    Func d = delegate(int i) { return i.ToString(); };<br />
    Console.WriteLine(d(1));<br />
  }<br />
}<br />
</code></p>
<p>v c# 2.0 neprelozis, neb Func je az v 3.5 frameworku.. Nebo se da starsi kompilator nastavit proti novymu FW? <img src='http://www.augi.cz/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Aleš Roubíček</title>
		<link>http://www.augi.cz/programovani/closures-v-c/comment-page-1/#comment-19612</link>
		<dc:creator>Aleš Roubíček</dc:creator>
		<pubDate>Sat, 08 Jan 2011 20:30:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.augi.cz/?p=432#comment-19612</guid>
		<description><![CDATA[Pěkně shrnuto :))

Jen těm first-class function: prvotřídní funkce bych nenazýval ukazatelem na funkci. Vyjadřuje to trochu jinou vlastnost a to, že funkce jsou také plnohodnotné objekty.]]></description>
		<content:encoded><![CDATA[<p>Pěkně shrnuto <img src='http://www.augi.cz/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>Jen těm first-class function: prvotřídní funkce bych nenazýval ukazatelem na funkci. Vyjadřuje to trochu jinou vlastnost a to, že funkce jsou také plnohodnotné objekty.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
