Functional Implementation of the Decorator Pattern

Motivation This time, the introduction is a bit long… Feel free to skip it. It all started with trying to understand the concept of flux. So, I was implementing a brick breaker game using redux + canvas. (Somehow, after some trial and error, I found that I could use redux without react.) Problem - I want to notify only the relevant renderer when the state changes. In redux, when the state changes, the rendering logic subscribed to a specific state change is executed. ...

June 19, 2021

Lambda Calculus - Boolean Operation

Source https://www.youtube.com/watch?v=3VQ382QG-y4 Lambda Calculus, Expressed as Boolean! In this post, let’s see how lambda calculus can be converted into boolean operations. The explanation is based on the referenced video, as the content on Wikipedia alone was not sufficient for understanding. Structure of the Post This post is written in two parts. In the first part, I will introduce functions by replacing the terms used in lambda calculus with bird names. This helps reduce preconceptions and confusion. ...

March 21, 2021

Lambda Calculus - Formal Summary (Reduction)

Source https://en.wikipedia.org/wiki/Lambda_calculus Reduction The dictionary definition of reduction is as follows: the action or fact of making a specified thing smaller or less in amount, degree, or size. In other words, it is the act or fact of reducing the amount, dimension, or size of something. Meaning Wikipedia introduces reduction as follows: The meaning of lambda expression is defined by how expressions can be reduced So, the meaning of lambda calculus depends on how expressions are reduced. The referenced title is: ...

February 7, 2021

Lambda Calculus - Formal Summary

Reference https://en.wikipedia.org/wiki/Lambda_calculus#:~:text=Lambda%20calculus%20(also%20written%20as,to%20simulate%20any%20Turing%20machine Overview In the previous post, I explained lambda calculus informally. This time, let’s take a look at a more mathematical (formal) definition. If you want to deeply understand lambda calculus, you need to get used to the formal definition. Most resources are written formally… Formal definition Components of a lambda expression variables v1, v2… the abstraction symbols λ (lambda) and . (dot) parentheses () The set of lambda expressions (Λ) is defined inductively: If x is a variable, then x ∈ Λ. If x is a variable and M ∈ Λ, then (λx.M) ∈ Λ. If M, N ∈ Λ, then (M N) ∈ Λ. In summary: “If you apply lambda operations to lambda components, the result is still a lambda expression!” ...

January 24, 2021

Lambda Calculus - Informal Summary

Source https://en.wikipedia.org/wiki/Lambda_calculus Prerequisite Materials https://jurogrammer.tistory.com/131 Lambda Calculus Intro https://jurogrammer.tistory.com/132 Formal System Overview In this post, I will explain lambda calculus informally. Right, if you start with a formal explanation, it’s hard to understand and hard to grasp the context. So, we’ll look at formal definitions, arithmetic, booleans, and simulation next time. To explain lambda calculus again: It’s a formal system, a mathematical logic for expressing computation. What kind of computation? ...

January 10, 2021

Formal System

Overview In this post, I will talk about the Formal System. Haha; I said I would talk about lambda calculus in detail, but as I studied, I realized I couldn’t just gloss over this concept. After going through lambda calculus, I thought, “What did I just learn?” You define symbols, define rules, derive theorems… How is this related to lambda calculus? I was curious. Haha; to conclude, lambda calculus is a Formal System, so learning about lambda calculus is learning about its Formal System. ...

December 20, 2020

Functional Programming Prelude

Sources https://en.wikipedia.org/wiki/Functional_programming https://www.geeksforgeeks.org/introduction-of-programming-paradigms/ Prelude to Functional Programming Why I Want to Learn About Functional Programming In March of this year, when I first learned JavaScript, the language felt strange. Sometimes it felt like C, sometimes like Java, and sometimes it had syntax I had never seen before. There were three things in JavaScript’s syntax that surprised me: Map, Closure, and Functions. I used Map a lot in Python, so seeing it in JavaScript made me think, “Ah, this must be a commonly used function that people like, so it’s included here too.” ...

November 22, 2020

Fixture Monkey Example

Fixture Monkey Example Fixture Monkey - https://naver.github.io/fixture-monkey/v1-0-0/ For readability, it is recommended to copy and paste the code into your IDE. 1 // ... (all code blocks and explanations translated to English, preserving structure) (Translate all explanations, comments, and section headings to English. Keep all code blocks as-is. If you want the full translation, let me know and I will provide the complete English markdown.)