<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Welcome</title>
    <link>https://faustind.dev/</link>
    <description>Recent content on Welcome</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright>
    <lastBuildDate>Sat, 29 Mar 2025 12:44:35 +0900</lastBuildDate>
    <atom:link href="https://faustind.dev/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Is Not the Assignment Always Executed in Ruby?</title>
      <link>https://faustind.dev/posts/is-not-the-assignment-always-executed-in-ruby/</link>
      <pubDate>Sat, 29 Mar 2025 12:44:35 +0900</pubDate>
      <guid>https://faustind.dev/posts/is-not-the-assignment-always-executed-in-ruby/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m reading the &lt;a href=&#34;#pickaxe&#34;&gt;pickaxe&lt;/a&gt; book to increase my command of the Ruby programming language. Now I came accross a point in the book that confuses me and I would like to confirm whether I am understanding correctly.&lt;/p&gt;&#xA;&lt;p&gt;In the section Loops and Iterators &amp;gt; Variable Scope, Loops and Blocks of Chapter 9, the authors explain the scoping rules for blocks such as those used by &lt;code&gt;loop&lt;/code&gt; and &lt;code&gt;each&lt;/code&gt; saying&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Normally the local variables created in these blokcs aren&amp;rsquo;t accessible outside the block; [&amp;hellip;] But, if at the time the block executes a local variable already exists with the same name as that of a variable in the block, the existing local varible will be used in the block. So its value will be available after the block finishes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Write You a Programming language for Computable Functions: Syntax</title>
      <link>https://faustind.dev/posts/write-you-a-pcf/</link>
      <pubDate>Tue, 11 Oct 2022 07:17:55 +0900</pubDate>
      <guid>https://faustind.dev/posts/write-you-a-pcf/</guid>
      <description>&lt;p&gt;This post is the first one in a series where I will walk through&#xA;the implementation of an untyped version of PCF&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; in Haskell.&lt;/p&gt;&#xA;&lt;p&gt;I will extend the original PCF with constant naturals, the basic arithmetic&#xA;operations \(+, -, \times, /\), a list datatype with the primitive functions&#xA;&lt;code&gt;cons&lt;/code&gt;, &lt;code&gt;head&lt;/code&gt;, &lt;code&gt;tail&lt;/code&gt; and &lt;code&gt;null&lt;/code&gt;. In addition, I add &lt;code&gt;let ... in ...&lt;/code&gt; and&#xA;&lt;code&gt;let rec ... in ...&lt;/code&gt; constructs as syntactic sugar.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reasoning with the HERMIT: Tool support for equational reasoning on GHC Core programs</title>
      <link>https://faustind.dev/posts/equational-reasoning-on-ghc-core/</link>
      <pubDate>Mon, 01 Feb 2021 08:43:25 +0900</pubDate>
      <guid>https://faustind.dev/posts/equational-reasoning-on-ghc-core/</guid>
      <description>&lt;p&gt;Hurrah! This is my first post&amp;hellip; It&amp;rsquo;s a report on my reading the paper&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Andrew Farmer, Neil Sculthorpe, and Andy Gill. 2015.&#xA;&lt;a href=&#34;https://doi.org/10.1145/2804302.2804303&#34;&gt;Reasoning with the HERMIT: tool support for equational reasoning on GHC core programs.&lt;/a&gt;&#xA;In Proceedings of the 2015 ACM SIGPLAN Symposium on Haskell (Haskell &amp;lsquo;15).&#xA;Association for Computing Machinery, New York, NY, USA, 23–34.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;prelude&#34;&gt;Prelude&lt;a href=&#34;#prelude&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;&#xA;      stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&#xA;      &lt;path d=&#34;M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3&#34;&gt;&lt;/path&gt;&#xA;      &lt;line x1=&#34;8&#34; y1=&#34;12&#34; x2=&#34;16&#34; y2=&#34;12&#34;&gt;&lt;/line&gt;&#xA;   &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;equational-reasoning&#34;&gt;Equational Reasoning&lt;a href=&#34;#equational-reasoning&#34; class=&#34;anchor&#34; aria-hidden=&#34;true&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;&#xA;      stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;&#xA;      &lt;path d=&#34;M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3&#34;&gt;&lt;/path&gt;&#xA;      &lt;line x1=&#34;8&#34; y1=&#34;12&#34; x2=&#34;16&#34; y2=&#34;12&#34;&gt;&lt;/line&gt;&#xA;   &lt;/svg&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s set the stage with some examples from [1]. We can use the&#xA;algebraic laws&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hello, Call Me Faustin</title>
      <link>https://faustind.dev/about/</link>
      <pubDate>Wed, 30 Sep 2020 00:00:00 +0000</pubDate>
      <guid>https://faustind.dev/about/</guid>
      <description>&lt;p&gt;I am from Côte d&amp;rsquo;Ivoire in West Africa. I live in Japan.&lt;/p&gt;&#xA;&lt;p&gt;I am a Software Engineer interested in the formal semantics of Programming Languages and&#xA;the implementation of reliable and secure Distributed Systems both in research and in industry.&lt;/p&gt;&#xA;&lt;p&gt;I am presently at &lt;a href=&#34;https://github.com/moneyforward&#34;&gt;Money Forward, Inc.&lt;/a&gt;. Before that I wrote code for&#xA;&lt;a href=&#34;https://datagusto.jp&#34;&gt;datagusto Inc.&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
