The post defines the basic principles of composing networking I/O. All defined combinators use standard Golang notations from which other combinator notations are constructed. Domain Specific Language built over combinators shows that any networking could be reduced to an expression purely in terms of combinators. The crucial idea here is the computational language, which delivers abstractions, where anyone can declare things and then reuse them without having to think about how they’re built inside.
Why higher-kinded polymorphism is vital functional abstraction and How to implement type classes with Golang
Higher-kinded types helps to implement polymorphic containers, shared libraries, compatibility and harness testing. Golang does not support higher-kinded types, where a type is abstracted over some other type. The defunctionalization technique transforms higher-kinded type expressions into nullary kind. The post explains how to build a lightweight higher-kinded polymorphism using standard Golang notation with help of defunctionalization.
A Guide To Pure Type Combinators in Golang or How to Stop Worrying and Love the Functional Programming
Combinators open up an opportunity to depict computation problems in terms of fundamental elements. It delivers powerful patterns for functional programming and make a bridge to the way humans think, allowing anyone to represent anything using structured symbolic expressions. Let’s advance these patterns towards the Golang type system and define combinators over types and their instances to derive complex structures of type T. There are 7 patterns to consider and express their semantic with Golang despite a fact that Golang type system is less powerful and does not support type classes. In the end, combinators are fundamentally computational constructs.
A toolkit develops purely functional and high-order cloud components with AWS CDK. A shift from category of classes to pure functions simplifies the development.
The post defines ad-hoc polymorphism techniques for TypeScript. It helps to define a function with several different types acting in a different way for each type.
Compose AWS CDK Components from small reusable elements using a purely functional method as a solution to scarp a boilerplate code.
Erlang permits writing a generic code but it has a few disadvantages that makes they usage questionable. The datum library provides a parse transform to solve Erlang’s limitations.