<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>sanctuary &#8211; Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<atom:link href="https://jessewarden.com/tag/sanctuary/feed" rel="self" type="application/rss+xml" />
	<link>https://jessewarden.com</link>
	<description>Software &#124; Fitness &#124; Gaming</description>
	<lastBuildDate>Sat, 23 Jun 2018 14:16:54 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://jessewarden.com/wp-content/uploads/2016/08/cropped-Lambda2-32x32.png</url>
	<title>sanctuary &#8211; Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<link>https://jessewarden.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Sanctuary JS</title>
		<link>https://jessewarden.com/2018/06/sanctuary-js.html</link>
					<comments>https://jessewarden.com/2018/06/sanctuary-js.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Mon, 11 Jun 2018 22:59:57 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[adt]]></category>
		<category><![CDATA[algebraicdatatypes]]></category>
		<category><![CDATA[currying]]></category>
		<category><![CDATA[fp]]></category>
		<category><![CDATA[functionalprogramming]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[lodash]]></category>
		<category><![CDATA[ramda]]></category>
		<category><![CDATA[sanctuary]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=5515</guid>

					<description><![CDATA[Sanctuary Found this new (to me) FP library called Sanctuary. Total Functions It has total functions; unlike Ramda/Lodash it validates types at runtime; no need to check for the correct data type before using functions. Information Preservation It makes intelligent decisions around results being ADT&#8217;s. You get back a Maybe for things in Lodash that [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>Sanctuary</h1>
<p>Found this new (to me) FP library called <a href="https://sanctuary.js.org/">Sanctuary</a>.</p>
<p><span id="more-5515"></span></p>
<h1>Total Functions</h1>
<p>It has total functions; unlike <a href="https://ramdajs.com/">Ramda</a>/<a href="https://lodash.com/docs/4.17.10">Lodash</a> it validates types at runtime; no need to check for the correct data type before using functions.</p>
<h1>Information Preservation</h1>
<p>It makes intelligent decisions around results being ADT&#8217;s. You get back a Maybe for things in Lodash that would report a String or undefined. A lot more clear and something you&#8217;d end up probably wrapping yourself anyway.</p>
<h1>Currying: Only 1 Arg Per Function</h1>
<p>Strong opinions that currying should be 1 argument per function. I&#8217;m on the fence about this, mainly because currying is a huge leap for some JavaScript programmers &amp; having &#8220;the old way&#8221; to call functions normally like <code>add(1, 2, 3)</code> vs <code>add(1)(2)(3)</code> helps them out a lot to learn.</p>
<h1>No this</h1>
<p>Disallows this. It&#8217;s the worst thing in JavaScript &amp; more divisive than politics.</p>
<h1>Throws For Wrong Type</h1>
<p>This kind of makes me rage is what they call invariants. Meaning, if you pass in the wrong type, it throws. Now, during unit testing + manual testing at runtime, this can help suss out bugs even if you&#8217;re using typings via <a href="https://flow.org/en/">Flow</a>/<a href="https://www.typescriptlang.org/">TypeScript</a>, etc. However, throwing Errors is a side effect, and it blows my mind a group smart enough to create Sanctuary would do this. Good news, tho, you can turn it off, heh!</p>
<h1>Learn More</h1>
<p><a href="https://sanctuary.js.org/">Read more about Sanctuary</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2018/06/sanctuary-js.html/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
