<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>DevTalk.net - Latest Comments</title><link xmlns="http://www.w3.org/2005/Atom" rel="http://api.friendfeed.com/2008/03#sup" href="http://disqus.com/sup/all.sup#forumcomments-aacd7fdb" type="application/json"/><link>http://devtalk.disqus.com/</link><description></description><atom:link href="http://devtalk.disqus.com/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Sun, 24 Mar 2013 16:52:26 -0000</lastBuildDate><item><title>Re: Chained null checks and the Maybe monad</title><link>http://devtalk.net/csharp/chained-null-checks-and-the-maybe-monad/#comment-841021248</link><description>&lt;p&gt;Great post, also if I prefer I simpler Maybe monad (like this &lt;a href="http://blog.ploeh.dk/2011/02/04/TheBCLalreadyhasaMaybemonad/)" rel="nofollow"&gt;http://blog.ploeh.dk/2011/02/0...&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In 2013 after the diffusion of many FP langs and after a lot of langs like C# got great functional constructs... there's still people ask "why?!".&lt;/p&gt;

&lt;p&gt;Why we should avoid boilerplate unreadable code that check nulls? This post and also the one quoted by me, explain "why".&lt;/p&gt;

&lt;p&gt;I've wrote too a lot of code that check a lot of times for null, I admit. But once understood I've shame of this code and for the future, you'll never see a null check in my code (except for parameter guard clauses).&lt;/p&gt;

&lt;p&gt;This is why.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Giacomo S. S.</dc:creator><pubDate>Sun, 24 Mar 2013 16:52:26 -0000</pubDate></item><item><title>Re: Chained null checks and the Maybe monad</title><link>http://devtalk.net/csharp/chained-null-checks-and-the-maybe-monad/#comment-736510389</link><description>&lt;p&gt;I had a colleague who wrote his own Maybe&amp;lt;t&amp;gt; monad, and my initial reaction was, Why? And: I can't read this. It took me a while truly to appreciate the flexibility and improved readability it provided. Yes, the terseness can be an initial barrier to understanding, but one I "got it" I really appreciated it. Sometimes it's a matter of which verbs we select: some people like "With," for example, and others won't.&lt;/p&gt;

&lt;p&gt;In any event, thanks for making a complex topic very understandable -- and for providing repeatable examples too.&amp;lt;/t&amp;gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tormoz</dc:creator><pubDate>Fri, 14 Dec 2012 17:54:40 -0000</pubDate></item><item><title>Re: Chained null checks and the Maybe monad</title><link>http://devtalk.net/csharp/chained-null-checks-and-the-maybe-monad/#comment-545581589</link><description>&lt;p&gt;I guess if all you're doing is checking for nulls, it is &lt;em&gt;maybe&lt;/em&gt; a bit more meaningful. However, that's not always the use case. For example, you might have a &lt;code&gt;Nullable&amp;lt;T&amp;gt;&lt;/code&gt; in there, or maybe a &lt;code&gt;struct&lt;/code&gt;. In this case, calling the function &lt;code&gt;When()&lt;/code&gt; makes a lot more sense.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitri</dc:creator><pubDate>Sat, 02 Jun 2012 03:51:32 -0000</pubDate></item><item><title>Re: Chained null checks and the Maybe monad</title><link>http://devtalk.net/csharp/chained-null-checks-and-the-maybe-monad/#comment-545384032</link><description>&lt;p&gt;The extension name With is not meaningful for me, I like IfNotNull from &lt;a href="http://smellegantcode.wordpress.com/2008/12/11/the-maybe-monad-in-c/" rel="nofollow"&gt;http://smellegantcode.wordpres...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">MichaelFreidgeim</dc:creator><pubDate>Fri, 01 Jun 2012 19:39:26 -0000</pubDate></item><item><title>Re: ReSharper SDK Adventures Part 2 &amp;#8211; Math.Pow Improvements</title><link>http://devtalk.net/resharper/resharper-sdk-adventures-2/#comment-525811088</link><description>&lt;p&gt;Yep, I imagine this would work too, though it's a slightly less comprehensible alternative. There's a hundred ways to skin the cat, as they say :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitri</dc:creator><pubDate>Thu, 10 May 2012 17:53:02 -0000</pubDate></item><item><title>Re: ReSharper SDK Adventures Part 2 &amp;#8211; Math.Pow Improvements</title><link>http://devtalk.net/resharper/resharper-sdk-adventures-2/#comment-525772667</link><description>&lt;p&gt;&lt;code&gt;&lt;br&gt;bool isOnMathPow = false;&lt;br&gt;var r = element.InvocationExpressionReference.Resolve();&lt;br&gt;var m = r.DeclaredElement as IMethod;&lt;br&gt;if (m != null)&lt;br&gt;{&lt;br&gt;  isOnMathPow = m.XMLDocId == "M:System.Math.Pow(System.Double,System.Double)";&lt;br&gt;}&lt;br&gt;&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">derigel</dc:creator><pubDate>Thu, 10 May 2012 17:09:26 -0000</pubDate></item><item><title>Re: ReSharper SDK Adventures Part 1 &amp;#8211; Math.Pow Inlining</title><link>http://devtalk.net/resharper/resharper-sdk-adventures-1/#comment-519245410</link><description>&lt;p&gt;Very nice overview, thank you!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexander Buryak</dc:creator><pubDate>Fri, 04 May 2012 13:28:52 -0000</pubDate></item><item><title>Re: Chained null checks and the Maybe monad</title><link>http://devtalk.net/csharp/chained-null-checks-and-the-maybe-monad/#comment-517988849</link><description>&lt;p&gt;You should maybe re-read this.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rodrigo</dc:creator><pubDate>Thu, 03 May 2012 16:26:55 -0000</pubDate></item><item><title>Re: Realtime Programming</title><link>http://devtalk.net/fsharp/realtime-programming/#comment-494178816</link><description>&lt;p&gt;Nice!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitri</dc:creator><pubDate>Wed, 11 Apr 2012 06:57:10 -0000</pubDate></item><item><title>Re: Realtime Programming</title><link>http://devtalk.net/fsharp/realtime-programming/#comment-492009324</link><description>&lt;p&gt;getting more out of FSI REPL see &lt;a href="http://code.google.com/p/fseye/" rel="nofollow"&gt;http://code.google.com/p/fseye...&lt;/a&gt; &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">New User_</dc:creator><pubDate>Mon, 09 Apr 2012 04:05:10 -0000</pubDate></item><item><title>Re: Local Inversion of Control</title><link>http://devtalk.net/dotnet/local-inversion-of-control/#comment-489095245</link><description>&lt;p&gt;Thanks, glad you like it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitri</dc:creator><pubDate>Fri, 06 Apr 2012 13:15:26 -0000</pubDate></item><item><title>Re: Chained null checks and the Maybe monad</title><link>http://devtalk.net/csharp/chained-null-checks-and-the-maybe-monad/#comment-472336050</link><description>&lt;p&gt;I think you're missing the point. A single null check is no problem, but lots and lots of nested null checks take readability to zero.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitri</dc:creator><pubDate>Wed, 21 Mar 2012 09:39:00 -0000</pubDate></item><item><title>Re: Chained null checks and the Maybe monad</title><link>http://devtalk.net/csharp/chained-null-checks-and-the-maybe-monad/#comment-472297392</link><description>&lt;p&gt;Can someone explain to me how this:&lt;br&gt;if (person != null)&lt;br&gt;is " fairly unreadable (and un-maintainable) code"? It reads as "If the person object is not null". Seems perfectly readable (and maintainable) to me.&lt;br&gt;Even in long hand "if open bracket the person object is not null close bracket" it still makes sense.&lt;/p&gt;

&lt;p&gt;Now this:&lt;br&gt;this.With(x =&amp;gt; person) &lt;br&gt;is what? Readable? Maintainable? It reads... umm, not sure, erm let's look at the "with" method... ah, when evaluating, using the with method, the object "this" - is the result, returned into variable x, equal to or greater than the person object?!? Is that right, erm, maybe I should have another crack at it...&lt;br&gt;In English it actually reads "this dot with open bracket x is equal to or greater than the person object close bracket". What does that mean??&lt;/p&gt;

&lt;p&gt;(Nice bit of code though)&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Computersade</dc:creator><pubDate>Wed, 21 Mar 2012 08:52:31 -0000</pubDate></item><item><title>Re: Introducing MathSharp &amp;#8211; Convert Math to Code</title><link>http://devtalk.net/dotnet/introducing-mathsharp/#comment-442900409</link><description>&lt;p&gt;Way!!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Art Scott</dc:creator><pubDate>Sat, 18 Feb 2012 13:36:01 -0000</pubDate></item><item><title>Re: Local Inversion of Control</title><link>http://devtalk.net/dotnet/local-inversion-of-control/#comment-442031190</link><description>&lt;p&gt;Really love the obj.IsOneOf("a", "b", "c") extension. Big fan of extension methods in general and tend to create a lot of them, but haven't done this one yet. &lt;/p&gt;

&lt;p&gt;Thanks for the post.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">rob sutherland</dc:creator><pubDate>Fri, 17 Feb 2012 11:49:26 -0000</pubDate></item><item><title>Re: Local Inversion of Control</title><link>http://devtalk.net/dotnet/local-inversion-of-control/#comment-428417777</link><description>&lt;p&gt;I don't have a public package with my methods. Hmm, perhaps I should publish one...&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitri</dc:creator><pubDate>Fri, 03 Feb 2012 02:51:03 -0000</pubDate></item><item><title>Re: Local Inversion of Control</title><link>http://devtalk.net/dotnet/local-inversion-of-control/#comment-428367774</link><description>&lt;p&gt;Can I get package with your extensions methods somewhere? &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Igor Sidorov</dc:creator><pubDate>Fri, 03 Feb 2012 01:28:43 -0000</pubDate></item><item><title>Re: Web Mining via Phantom.js and SharpKit</title><link>http://devtalk.net/dotnet/web-mining-phantomjs-sharpkit/#comment-377898250</link><description>&lt;p&gt;No, that would just change 'ize' to 'ise' and the like.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitri</dc:creator><pubDate>Fri, 02 Dec 2011 15:27:39 -0000</pubDate></item><item><title>Re: Web Mining via Phantom.js and SharpKit</title><link>http://devtalk.net/dotnet/web-mining-phantomjs-sharpkit/#comment-377877674</link><description>&lt;p&gt;Читаю постоянно статьи на английском, но эта наиболее непонятна для меня. Британский вариант английского?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">hodzanassredin</dc:creator><pubDate>Fri, 02 Dec 2011 15:09:34 -0000</pubDate></item><item><title>Re: Chained null checks and the Maybe monad</title><link>http://devtalk.net/csharp/chained-null-checks-and-the-maybe-monad/#comment-343739699</link><description>&lt;p&gt;just ... why?!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Guest</dc:creator><pubDate>Tue, 25 Oct 2011 10:51:29 -0000</pubDate></item><item><title>Re: Event Brokers in .Net</title><link>http://devtalk.net/dotnet/event-brokers/#comment-305257060</link><description>&lt;p&gt;Hi, I suggest you check out the example posted on BitBucket - it works just fine.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitri</dc:creator><pubDate>Thu, 08 Sep 2011 16:15:20 -0000</pubDate></item><item><title>Re: Building a conversation engine with WebSharper</title><link>http://devtalk.net/fsharp/conversation-engine-websharper/#comment-144776694</link><description>&lt;p&gt;I no longer have it. But I'll be sure to post bugs now that I know where to post them.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitri</dc:creator><pubDate>Fri, 11 Feb 2011 11:29:36 -0000</pubDate></item><item><title>Re: Building a conversation engine with WebSharper</title><link>http://devtalk.net/fsharp/conversation-engine-websharper/#comment-144019646</link><description>&lt;p&gt;I'd like to get a copy of the code that emits JS in the wrong order to fix it: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://bugs.intellifactory.com/websharper" rel="nofollow"&gt;https://bugs.intellifactory.co...&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;A&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Anton Tayanovskyy</dc:creator><pubDate>Thu, 10 Feb 2011 07:04:58 -0000</pubDate></item><item><title>Re: JSON Processing in F#</title><link>http://devtalk.net/fsharp/json-processing-in-f/#comment-135836002</link><description>&lt;p&gt;Really interested in how you recommend using F# with MongoDB  (which has a recently released C# driver)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Larry</dc:creator><pubDate>Fri, 28 Jan 2011 00:52:35 -0000</pubDate></item><item><title>Re: Continuous Testing</title><link>http://devtalk.net/dotnet/continuous-testing/#comment-106376068</link><description>&lt;p&gt;I think the idea of things running as you finish writing a statement is very nice, but also unrealistic given how slow compilation actually is (even if you are compiling a Hello World project).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitri</dc:creator><pubDate>Fri, 03 Dec 2010 11:40:42 -0000</pubDate></item></channel></rss>