<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	
	>
<channel>
	<title>
	Comments on: The Optional Monad In C++, Without the Ugly Stuff	</title>
	<atom:link href="https://www.fluentcpp.com/2017/07/07/optional-monad-cpp-without-ugly-stuff/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fluentcpp.com/2017/07/07/optional-monad-cpp-without-ugly-stuff/</link>
	<description>Jonathan Boccara&#039;s blog</description>
	<lastBuildDate>Thu, 16 Nov 2017 08:41:00 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.3</generator>
	<item>
		<title>
		By: xtofl		</title>
		<link>https://www.fluentcpp.com/2017/07/07/optional-monad-cpp-without-ugly-stuff/#comment-667</link>

		<dc:creator><![CDATA[xtofl]]></dc:creator>
		<pubDate>Thu, 16 Nov 2017 08:41:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=1578#comment-667</guid>

					<description><![CDATA[I&#039;m wondering if it would be possible to build an expression-tree-like structure that can &#039;transform&#039; the (almost) natural syntax we&#039;re used to into something that handles failure.

This (meta-) transformation could wrap plain argument types in `optional`, and plain return type into optional return type.

Then this
&lt;pre&gt;f4(f4(f3(f2(f1(_1), f1(_2)))))&lt;/pre&gt;

could be written as 

&lt;pre&gt; _(f4) (_(f4) (_(f3) (_(f2) (_(f1) (_1), _(f1)(_2))))) &lt;/pre&gt;

and all constituents could &#039;automagically&#039; be decorated/lifted and composed to result in a failure aware function.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m wondering if it would be possible to build an expression-tree-like structure that can &#8216;transform&#8217; the (almost) natural syntax we&#8217;re used to into something that handles failure.</p>
<p>This (meta-) transformation could wrap plain argument types in `optional`, and plain return type into optional return type.</p>
<p>Then this</p>
<pre>f4(f4(f3(f2(f1(_1), f1(_2)))))</pre>
<p>could be written as </p>
<pre> _(f4) (_(f4) (_(f3) (_(f2) (_(f1) (_1), _(f1)(_2))))) </pre>
<p>and all constituents could &#8216;automagically&#8217; be decorated/lifted and composed to result in a failure aware function.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Michael Steuer		</title>
		<link>https://www.fluentcpp.com/2017/07/07/optional-monad-cpp-without-ugly-stuff/#comment-399</link>

		<dc:creator><![CDATA[Michael Steuer]]></dc:creator>
		<pubDate>Wed, 12 Jul 2017 05:49:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=1578#comment-399</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.fluentcpp.com/2017/07/07/optional-monad-cpp-without-ugly-stuff/#comment-389&quot;&gt;Shreyans&lt;/a&gt;.

Yeah, Python makes this monad pattern a lot nicer when it comes to client code then C++.


Xuanyi Chew did a PyCon talk showing just that:

https://www.youtube.com/watch?v=WNwV3wR4JjA]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.fluentcpp.com/2017/07/07/optional-monad-cpp-without-ugly-stuff/#comment-389">Shreyans</a>.</p>
<p>Yeah, Python makes this monad pattern a lot nicer when it comes to client code then C++.</p>
<p>Xuanyi Chew did a PyCon talk showing just that:</p>
<p><a href="https://www.youtube.com/watch?v=WNwV3wR4JjA" rel="nofollow ugc">https://www.youtube.com/watch?v=WNwV3wR4JjA</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Shreyans		</title>
		<link>https://www.fluentcpp.com/2017/07/07/optional-monad-cpp-without-ugly-stuff/#comment-389</link>

		<dc:creator><![CDATA[Shreyans]]></dc:creator>
		<pubDate>Fri, 07 Jul 2017 19:05:00 +0000</pubDate>
		<guid isPermaLink="false">https://www.fluentcpp.com/?p=1578#comment-389</guid>

					<description><![CDATA[This kinda looks like declaring decorators in python terminology. It takes a function as input and returns another function which in turn uses the passed function. Python provides a great syntactic sugar through decorators for such scenarios where you want to change the meaning of a function.]]></description>
			<content:encoded><![CDATA[<p>This kinda looks like declaring decorators in python terminology. It takes a function as input and returns another function which in turn uses the passed function. Python provides a great syntactic sugar through decorators for such scenarios where you want to change the meaning of a function.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
