Let me describe the materials I have to the present moment (ongoing thread).
1/
In this book, I develop a complete set of tools and approaches for building complex applications in a pure functional language (Haskell).
I’m working on the book currently. 5 chapters are available already:
graninas.com/functional-des…
2/
3/
4/
5/
github.com/graninas/Andro…
github.com/graninas/Hydra
There are also samples from chapters here:
github.com/graninas/Funct…
6/
Patreon program:
patreon.com/functional_des…
Paypal donations:
paypal.me/graninas
Comments, retweets and advertising will work too!
7/
github.com/graninas/Node
This is a comprehensive framework in Haskell to build complex, distributed, multithreaded apps. It has a lot of features out of the box: logging, KV DB, config management, safe concurrent state, networking (TCP/UDP) and more.
8/
9/
11/
12/
Another nice feature is CLI. The app can interact with console if you need.
13/
The framework also contains sample nodes having a non-trivial logic.
github.com/graninas/Node/…
14/
You’ll find more info about the framework in this tutorial:
“Building network actors with Node Framework”
gist.github.com/graninas/9beb8…
15/
In 2018, I created my own monadic STM in Haskell and C++ exclusively for the C++ Russia 2018 conference. It was a very difficult challenge: concurrency, FP in C++, lack of monads... I felt I could use Free Monads to achieve my goals.
16/
C++ library cpp_stm_free: github.com/graninas/cpp_s…
Haskell library stm_free: github.com/graninas/stm-f…
17/
Article (Rus, Haskell version): “STM на Free-монадах”:
habr.com/ru/post/350628/
Tutorial (Eng, C++ version): “STM in C++: Pure Functional Approach”:
gist.github.com/graninas/c7e0a…
19/
Talk (Rus, C++ Russia 2018): “Функциональный подход к STM”
Slides (Eng):
slideshare.net/alexandrgranin…
Talk (Rus, LambdaNsk): “ФП в С++ и конкурентные вычисления”
Slides (Eng):
slideshare.net/alexandrgranin…
20/
github.com/graninas/cpp_p…
The same task is solved on Haskell version:
github.com/graninas/stm-f…
21/
I composed a list of resources about FP in C++:
github.com/graninas/cpp_f…
It’s not a secret that C++ is moving to the brave FP world nowadays.
22/
I wanted to research how Free Monads can help with eDSL creation. What syntax and semantics it’s possible to express? Also I wanted to do something entertaining. And I created this project.
github.com/graninas/hinte…
23/
github.com/graninas/trans…
24/
27/
1:
2:
This project is open for contributions. There are tasks for beginners and advanced haskellers, so welcome!
28/
Talk (Rus): “eDSL for transition graph using Free monads and existential types”:
Slides (Eng):
slideshare.net/alexandrgranin…
This was entertaining and enlightening indeed.
29/