<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>rahul.london</title><description>Writing, systems, and notes by Rahul Goma Phulore.</description><link>https://rahul.london/</link><language>en-gb</language><item><title>Composable table updates in Slick</title><link>https://rahul.london/writing/2018/08/12/composable-table-updates-in-slick/</link><guid isPermaLink="true">https://rahul.london/writing/2018/08/12/composable-table-updates-in-slick/</guid><description>Using existential types to build composable, type-safe update operations in Slick.</description><pubDate>Sun, 12 Aug 2018 00:00:00 GMT</pubDate></item><item><title>Types of map function in Haskell, Scala, and Clojure</title><link>https://rahul.london/writing/2014/08/09/types-of-map-function-in-haskell-scala/</link><guid isPermaLink="true">https://rahul.london/writing/2014/08/09/types-of-map-function-in-haskell-scala/</guid><description>A comparative look at how Haskell, Scala, and Clojure generalise `map` in different directions.</description><pubDate>Sat, 09 Aug 2014 22:08:00 GMT</pubDate></item><item><title>Dead-simple threading with functions, in Clojure</title><link>https://rahul.london/writing/2014/03/16/dead-simple-threading-with-functions-in/</link><guid isPermaLink="true">https://rahul.london/writing/2014/03/16/dead-simple-threading-with-functions-in/</guid><description>A small function-based alternative to Clojure&apos;s threading macros, built from composable combinators instead of syntax transformation.</description><pubDate>Sun, 16 Mar 2014 23:14:00 GMT</pubDate></item><item><title>So how much of inheritance criticism is really valid?</title><link>https://rahul.london/writing/2014/02/09/so-how-much-of-inheritance-criticism/</link><guid isPermaLink="true">https://rahul.london/writing/2014/02/09/so-how-much-of-inheritance-criticism/</guid><description>A look at whether the fragile-base-class problem is really specific to inheritance, or whether selective overriding is the deeper issue.</description><pubDate>Sun, 09 Feb 2014 15:48:00 GMT</pubDate></item><item><title>Understanding monads</title><link>https://rahul.london/writing/2013/10/02/understanding-monads/</link><guid isPermaLink="true">https://rahul.london/writing/2013/10/02/understanding-monads/</guid><description>A transcript-style introduction to monads through Scala examples involving optional values, exceptions, and futures.</description><pubDate>Wed, 02 Oct 2013 09:52:00 GMT</pubDate></item><item><title>Not-so-embedded documents with Clojure</title><link>https://rahul.london/writing/2013/09/14/not-so-embedded-documents-with-clojure/</link><guid isPermaLink="true">https://rahul.london/writing/2013/09/14/not-so-embedded-documents-with-clojure/</guid><description>Using metadata and multimethods in Clojure to get polymorphic behaviour over plain maps without wrapping them in classes.</description><pubDate>Sat, 14 Sep 2013 21:37:00 GMT</pubDate></item><item><title>Easing the use of the Embedded Document pattern</title><link>https://rahul.london/writing/2013/07/21/easing-use-of-embedded-document-pattern/</link><guid isPermaLink="true">https://rahul.london/writing/2013/07/21/easing-use-of-embedded-document-pattern/</guid><description>Using small Ruby combinators to reduce boilerplate when wrapping JSON with the Embedded Document pattern.</description><pubDate>Sun, 21 Jul 2013 19:49:00 GMT</pubDate></item><item><title>Something to be said for dynamic typing</title><link>https://rahul.london/writing/2012/11/04/something-to-be-said-for-dynamic-typing/</link><guid isPermaLink="true">https://rahul.london/writing/2012/11/04/something-to-be-said-for-dynamic-typing/</guid><description>A short note pointing to Rahul&apos;s Quora answer on what dynamic typing can make possible, especially in contrast with Scala.</description><pubDate>Sun, 04 Nov 2012 12:32:00 GMT</pubDate></item><item><title>Stacking up Factor against the Lisp bullet list</title><link>https://rahul.london/writing/2012/07/22/stacking-up-factor-against-lisp-bullet-list/</link><guid isPermaLink="true">https://rahul.london/writing/2012/07/22/stacking-up-factor-against-lisp-bullet-list/</guid><description>Notes from revisiting Factor, prompted by a Twitter exchange about how its macro system and broader design compare with Lisp.</description><pubDate>Sun, 22 Jul 2012 23:18:00 GMT</pubDate></item><item><title>F# Option Cheat Sheet</title><link>https://rahul.london/writing/2012/02/27/f-option-cheat-sheet/</link><guid isPermaLink="true">https://rahul.london/writing/2012/02/27/f-option-cheat-sheet/</guid><description>A compact guide to working with F# options through higher-order functions instead of repetitive pattern matching.</description><pubDate>Mon, 27 Feb 2012 17:58:00 GMT</pubDate></item><item><title>Sections of (.)</title><link>https://rahul.london/writing/2011/12/20/sections-of/</link><guid isPermaLink="true">https://rahul.london/writing/2011/12/20/sections-of/</guid><description>A small note on learning to read Haskell expressions that use sections of `(.)`, and the explanation that finally made them click.</description><pubDate>Tue, 20 Dec 2011 20:13:00 GMT</pubDate></item><item><title>10 Factor One-Liners to Impress Your Friends</title><link>https://rahul.london/writing/2011/10/31/10-factor-one-liners-to-impress-your-friends/</link><guid isPermaLink="true">https://rahul.london/writing/2011/10/31/10-factor-one-liners-to-impress-your-friends/</guid><description>A first pass at the classic “one-liners to impress your friends” meme, translated into Factor after discovering the language through Slava Pestov’s talk.</description><pubDate>Mon, 31 Oct 2011 22:33:00 GMT</pubDate></item><item><title>Emulating C#’s default keyword in Scala, and putting it on steroids</title><link>https://rahul.london/writing/2011/08/11/emulating-cs-default-keyword-in-scala/</link><guid isPermaLink="true">https://rahul.london/writing/2011/08/11/emulating-cs-default-keyword-in-scala/</guid><description>Using Scala’s type system to emulate C#’s default keyword and then extend it with typeclass-driven defaults.</description><pubDate>Thu, 11 Aug 2011 18:16:00 GMT</pubDate></item></channel></rss>