<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Haskell on nyadgar.com</title>
		<link>https://nyadgar.com/tags/haskell/</link>
		<description>Recent content in Haskell on nyadgar.com</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Mon, 06 Apr 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://nyadgar.com/tags/haskell/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Making a JSON Parser in Haskell</title>
				<link>https://nyadgar.com/posts/making-a-json-parser-in-haskell/</link>
				<pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://nyadgar.com/posts/making-a-json-parser-in-haskell/</guid>
				<description>&lt;div class=&#34;box box-info&#34;&gt;&#xA;    &lt;span class=&#34;box-icon&#34; aria-hidden=&#34;true&#34;&gt;&#xA;        &lt;svg viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; width=&#34;20&#34; height=&#34;20&#34;&gt;&lt;circle cx=&#34;12&#34; cy=&#34;12&#34; r=&#34;10&#34;&gt;&lt;/circle&gt;&lt;line x1=&#34;12&#34; y1=&#34;11&#34; x2=&#34;12&#34; y2=&#34;16&#34;&gt;&lt;/line&gt;&lt;line x1=&#34;12&#34; y1=&#34;8&#34; x2=&#34;12.01&#34; y2=&#34;8&#34;&gt;&lt;/line&gt;&lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;    &lt;span class=&#34;box-label sr-only&#34;&gt;Info&lt;/span&gt;&#xA;    &lt;div class=&#34;box-body&#34;&gt;&#xA;        If you are here to explore the source code click &lt;a href=&#34;https://github.com/noam-g4/json-parser/&#34;&gt;here.&lt;/a&gt;&#xA;    &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;This article is different from my usual. I&amp;rsquo;m inviting you to join me in writing a JSON parser in Haskell. We&amp;rsquo;ll review the &lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc8259&#34;&gt;JSON RFC standards&lt;/a&gt; and create a Haskell data model for valid JSON. For parsing, I challenged myself to avoid consulting other implementations, believing such challenges enhance problem-solving skills.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Monads (finally)</title>
				<link>https://nyadgar.com/posts/monad/</link>
				<pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate>
				<guid>https://nyadgar.com/posts/monad/</guid>
				<description>&lt;p&gt;If you have searched for &lt;em&gt;monads&lt;/em&gt; and reached this article,&#xA;you probably have some degree of knowledge about monads.&#xA;You may have already put a fair amount of effort into learning monads.&#xA;In any way, whenever you&amp;rsquo;ve tried to learn monads, you have likely&#xA;encountered two main approaches:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The: &lt;em&gt;Monads are simple, here&amp;rsquo;s a simple example of a monad&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Or the famous: &lt;em&gt;A monad is a monoid in the category of endofunctors&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In both approaches, the layout is similar. We start with a strong statement like:&#xA;&lt;em&gt;A monad is a powerful concept when applied to programming&lt;/em&gt;, and later&#xA;apologize for being one of the most difficult programming concepts to grasp. The&#xA;reality is that all of these statements about monads are valid, and the truth lies somewhere in the middle.&lt;/p&gt;</description>
			</item>
			<item>
				<title>What Would it Be Like to Do Functional Programming in Go?</title>
				<link>https://nyadgar.com/posts/what-would-it-be-like-to-do-functional-programming-in-go/</link>
				<pubDate>Wed, 24 Jul 2024 15:50:12 +0200</pubDate>
				<guid>https://nyadgar.com/posts/what-would-it-be-like-to-do-functional-programming-in-go/</guid>
				<description>&lt;div class=&#34;box box-warning&#34;&gt;&#xA;    &lt;span class=&#34;box-icon&#34; aria-hidden=&#34;true&#34;&gt;&#xA;        &lt;svg viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; width=&#34;20&#34; height=&#34;20&#34;&gt;&lt;path d=&#34;M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z&#34;&gt;&lt;/path&gt;&lt;line x1=&#34;12&#34; y1=&#34;9&#34; x2=&#34;12&#34; y2=&#34;13&#34;&gt;&lt;/line&gt;&lt;line x1=&#34;12&#34; y1=&#34;17&#34; x2=&#34;12.01&#34; y2=&#34;17&#34;&gt;&lt;/line&gt;&lt;/svg&gt;&#xA;    &lt;/span&gt;&#xA;    &lt;span class=&#34;box-label sr-only&#34;&gt;Warning&lt;/span&gt;&#xA;    &lt;div class=&#34;box-body&#34;&gt;&#xA;        &lt;strong&gt;Disclaimer&lt;/strong&gt;:&#xA;Go is not a pure functional programming language. This article does not try to teach you functional programming in Go since imposing functional programming concepts, may result in unnecessarily awkward code. Go has its style, and it&amp;rsquo;s proven to be highly successful. Therefore, there&amp;rsquo;s no point in forcing a foreign dialect on Go code. Haskell would be a great choice if you want to express yourself functionally.&#xA;    &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;This article aims to provide imperative programmers a bridge to the functional world. Crossing that bridge and seeing the other side can help us reimagine problem-solving and add new skills to our set. We will encounter Go translations to some original Haskell code, hoping this will allow us to understand the original dialect.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
