This repo contains all c++ / haskell samples from Bartosz Milewski's book (Category Theory for Programmers) converted to csharp and fsharp
Branch: master
Clone or download
cboudereau
cboudereau Chapter 8.4 + clean
Latest commit 6f879fd Feb 1, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
1.1 Arrows as Functions clean Jan 15, 2019
1.2 Properties of Composition clean Jan 15, 2019
2.6 Examples of Types
3.4 Monoid as Set 3.4 : Monoid as Set Jan 15, 2019
4 Kleisli Categories
5 Products and Coproducts fix surjective Jan 18, 2019
6 Simple Algebraic Data Types
7 Functor
8 Functoriality
.gitignore 1.1 Arrows as Functions : Function Composition Jan 14, 2019
README.md

README.md

category-theory-for-dotnet-programmers

This repo contains c++ / haskell samples from Bartosz Milewski's book (Category Theory for Programmers) converted to csharp and fsharp

Why

If you are curious about functional programming with dotnet background, you already may know Domain modeling made functional that could help you to build your first functional programming based app. The Category Theory for programmers, is quite interresting for programmers having a first experience in fsharp or csharp (in .net) who want to use Haskell or enhance their FSharp implementation.

Fsx and Csx are scripts files executed respectively into Fsharp interactive and Csharp interactive shipped with Visual Studio Community at least.

/!\ There is a problem with csx : to transform statement as expression (to display the value) you have to not ending your line with ';' causing compilation error on multiple line. If you encounter compilation error on csx, try to execute it line by line. If the code does not compile send a PR or a message.

How to use it ?

Read the Category Theory for Programmers and the annotations corresponding to the chapter into vs code or visual studio.

You can use it like a sandbox and try by yourself Challenges (challenges are not translated for more fun ;)). Only Haskell/C++ samples are translated.

I will try to add converted examples constantly but pull requests are accepted. The format is pretty simple, one folder per each chapter and 2 scripts (fsharp and csharp) inside.