ReaderT is a Monad Transformer that wraps a given Monad with a Reader. This allows the interface of a Reader that enables the composition of computations that depend on a shared environment (e -> a), but provides a way to abstract a means the Reader …
When combining multiple State ADT instances that depend on the same input, using chain can become quite burdensome. We end up having to play leapfrog with values inside of nested chain statements. Very reminiscent of the old callback nastiness we had…
This post is similar to previous post. The difference is in this post, we are going to see how to handle both successfuly result and error result by using Pair functor. So, still we have our funs.js: which is the same as previous post. const fs = req…
Let's say we are going to read some files, return the first file which pass the prediction method, this prediction method can be just check whether the file content contains more than 50 chars. For reading the file, it has tow requirements, first we…
We refactor a standard node callback style workflow into a composed task-based workflow. Original Code: const app = () => { fs.readFile('config.json', 'utf-8', (err, content) => { if (err) throw err; /g, '); fs.writeFile('config1.json', newContents,…
State is a lazy datatype and as such we can combine many simple transitions into one very complex one. This gives us a lot of control over how our state changes over time. In this lesson we will use this to our advantage and combine many transactions…
We would like the ability to group a series of actions to be dispatched with single dispatching functions used as handlers in various parts of our game. The only issue with that, is that animations and other design elements in our game require us to…
Lifting Now, let's review map from another perspective. map :: (T -> R) -> [T] -> [R] accepts 2 parameters, a function f :: T -> R and a list list :: [T]. [T] is a generic type paramterized by T, it's not the same as T, but definitely shares s…
JavaScript Functional Programming JavaScript 函数式编程 anonymous function https://en.wikipedia.org/wiki/Anonymous_function Lambda function https://en.wikipedia.org/wiki/Lambda_function http://en.wikipedia.org/wiki/Lambda_calculus Ramda v0.27.0 https://ra…
1. Functional programming treats computation as the evaluation of mathematical and avoids state and mutable data. Scala encourages an expression-oriented programming(EOP) 1) In expression-oriented programming every statement is an expression. A state…