#algebra

Uses: 4

Why higher-kinded polymorphism is vital functional abstraction and How to implement type classes with Golang

Tags: #coding #pure functional #golang #algebra #type system #type classes #polymorphism #higher-kinded

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

Tags: #coding #pure functional #golang #algebra #type system #type classes #generic #polymorphism #combinators #type trait

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.

Purely Functional Cloud Components with AWS CDK

Tags: #coding #aws #aws cdk #infrastructure as a code #pure functional #typescript #cloud #algebra #open source #combinators

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.

Generic Representation of Algebraic Data Types in Erlang

Tags: #coding #erlang #pure functional #generic #type system #algebraic data types #algebra #common data model

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.