<?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>Comments on: Parallelism in .NET &#8211; Part 8, PLINQ&#8217;s ForAll Method</title>
	<atom:link href="http://reedcopsey.com/2010/02/03/parallelism-in-net-part-8-plinqs-forall-method/feed/" rel="self" type="application/rss+xml" />
	<link>http://reedcopsey.com/2010/02/03/parallelism-in-net-part-8-plinqs-forall-method/</link>
	<description>Thoughts on C#, WPF, .NET, and programming for Scientific Visualization</description>
	<lastBuildDate>Sat, 04 Sep 2010 01:57:48 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Parallel Programming with .NET</title>
		<link>http://reedcopsey.com/2010/02/03/parallelism-in-net-part-8-plinqs-forall-method/#comment-1115</link>
		<dc:creator>Parallel Programming with .NET</dc:creator>
		<pubDate>Sun, 23 May 2010 17:51:44 +0000</pubDate>
		<guid isPermaLink="false">http://reedcopsey.com/2010/02/03/parallelism-in-net-part-8-plinqs-forall-method/#comment-1115</guid>
		<description>&lt;strong&gt;&quot;Parallelism in .NET&quot; Series by Reed Copsey, Jr....&lt;/strong&gt;

Reed Copsey, Jr. has been writing a great series of articles on parallelism with the .NET Framework 4...</description>
		<content:encoded><![CDATA[<p><strong>&#8220;Parallelism in .NET&#8221; Series by Reed Copsey, Jr&#8230;.</strong></p>
<p>Reed Copsey, Jr. has been writing a great series of articles on parallelism with the .NET Framework 4&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: <img src='http://reedcopsey.com/blog/wp-content/plugins/rpx/images/openid.png'/> Reed</title>
		<link>http://reedcopsey.com/2010/02/03/parallelism-in-net-part-8-plinqs-forall-method/#comment-682</link>
		<dc:creator><img src='http://reedcopsey.com/blog/wp-content/plugins/rpx/images/openid.png'/> Reed</dc:creator>
		<pubDate>Thu, 04 Feb 2010 19:10:03 +0000</pubDate>
		<guid isPermaLink="false">http://reedcopsey.com/2010/02/03/parallelism-in-net-part-8-plinqs-forall-method/#comment-682</guid>
		<description>Stephen,

I suspect that they did this, mainly because they wanted this to exist on the IObservable side, and wanted to keep feature parity on the IEnumerable side, as well.  Most of the arguments I make above for asynchronous operations apply to IObservable - in which case, it makes sense.

I actually, though, personally do not like the EnumerableEx.Do(...) implementation in the Rx framework.  It leaves a &quot;real bad taste&quot; when I&#039;ve used it, since it has some odd, unexpected behavior (ie: it doesn&#039;t actually perform the action until you enumerate through it, which makes sense, but is odd).  I particularly don&#039;t like that .Do() returns an IEnumerable&lt;T&gt;, so it can be used in the middle of expressions, even though it&#039;s a statement intended to cause side effects.   Personally, it seems no different than a slightly restricted form of Select() [since you can do the exact same thing with a Select(..)  call].</description>
		<content:encoded><![CDATA[<p>Stephen,</p>
<p>I suspect that they did this, mainly because they wanted this to exist on the IObservable side, and wanted to keep feature parity on the IEnumerable side, as well.  Most of the arguments I make above for asynchronous operations apply to IObservable &#8211; in which case, it makes sense.</p>
<p>I actually, though, personally do not like the EnumerableEx.Do(&#8230;) implementation in the Rx framework.  It leaves a &#8220;real bad taste&#8221; when I&#8217;ve used it, since it has some odd, unexpected behavior (ie: it doesn&#8217;t actually perform the action until you enumerate through it, which makes sense, but is odd).  I particularly don&#8217;t like that .Do() returns an IEnumerable<t>, so it can be used in the middle of expressions, even though it&#8217;s a statement intended to cause side effects.   Personally, it seems no different than a slightly restricted form of Select() [since you can do the exact same thing with a Select(..)  call].</t></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen Cleary</title>
		<link>http://reedcopsey.com/2010/02/03/parallelism-in-net-part-8-plinqs-forall-method/#comment-681</link>
		<dc:creator>Stephen Cleary</dc:creator>
		<pubDate>Thu, 04 Feb 2010 19:01:43 +0000</pubDate>
		<guid isPermaLink="false">http://reedcopsey.com/2010/02/03/parallelism-in-net-part-8-plinqs-forall-method/#comment-681</guid>
		<description>Another good post; I enjoy reading your blog!

Regarding the philosophical arguments, I must point out that the Rx team (who are very functionally minded) did choose to include Do and Run (which are essentially ForEach) for IEnumerables as well as IObservables.

At some point, pragmatism must be considered. Functional code must eventually produce side effects, and no one is really interested in forcing all LINQ side effects to be monads... :)</description>
		<content:encoded><![CDATA[<p>Another good post; I enjoy reading your blog!</p>
<p>Regarding the philosophical arguments, I must point out that the Rx team (who are very functionally minded) did choose to include Do and Run (which are essentially ForEach) for IEnumerables as well as IObservables.</p>
<p>At some point, pragmatism must be considered. Functional code must eventually produce side effects, and no one is really interested in forcing all LINQ side effects to be monads&#8230; <img src='http://reedcopsey.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
 