Alejandro Serrano Mena is a passionate of functional programming and formal methods in software development, especially using Kotlin and Haskell as languages. He enjoys not only using those tools, but also spreading the word: he's written four books targeting different levels, regularly gives talks in conferences and meetups, and teaches courses at Xebia Functional Academy. Lately, he's becoming interested in formal approaches to modeling, design, and architecture, using tools like Alloy.
For quite some time Alejandro was an academic, working on the area of compilers and type systems for functional languages. His PhD thesis versed over error messages, and he's been involved in efforts like improving GHC's support for impredicativity. This knowledge is put in practice in several open source projects, many of them using metaprogramming techniques or compiler extensions.
FP Ideas for the Curious Kotliner
Functional programming and Kotlin make such a great couple! In this book we explore ideas from the former that will definitely change the way you look and code in Kotlin.
Kotlin lies in a really interesting intersection of programming styles, with functional programming becoming increasingly popular. Functional style is by no means new, so why not take advantage of the decades of ideas, concepts, and patterns from that community? In this book we explore those ideas with a higher impact on Kotlin code, including how to model data in immutable fashion, describing dependencies using contexts and effects, or treating actions as data.
Get a practical, hands-on introduction to the Haskell language, its libraries and environment, and to the functional programming paradigm that is fast growing in importance in the software industry. This updated edition includes more modern treatment of Haskell's web framework and APIs.
You'll see how functional programming is gathering momentum, allowing you to express yourself in a more concise way, reducing boilerplate, and increasing the safety of your code. Haskell is an elegant and noise-free pure functional language with a long history, having a huge number of library contributors and an active community.
The Book of Monads
In functional programming, at the heart of input/output, failure, state, logic, and much more, lies a powerful abstraction called monad. This book provides a journey from the very first concepts, to the myriad of monads available to programmers, down to the categorical foundations.
Monads are key to unlocking many powerful patterns in functional programming. Alas, many developers struggle at first with the concept and the applications of monads. This books provides a full dive into the subject, including thorough explanations of adjacent concepts such as functors, monad transformers, final tagless, or extensible effects.
Haskell (almost) Standard Libraries
How do I match against a regex? How do I copy a file and handle any exception? These are just a couple of examples of common tasks which require libraries in Haskell. Everybody knows which one you should use... right? This book walks you through the main "standard" libraries in the ecosystem, with lots of examples to get you started.
As opposed to other languages, Haskell's base library is quite slim. However, for many tasks there's usually one community-blessed library. Unraveling that landscape is one of the main thresholds to move from beginner Haskeller to practitioner. This book introduces these "standard libraries", organized by topic. More than 20 chapters provide examples of most common tasks in daily programming, solved using the power of the Haskell ecosystem.
Trading Card Game Workshop
Haskell eXchange (Novice Track)
47 Degrees Academy
47 Degrees Academy
Berlin FP Group
Advanced Kotlin Dev Day
Kotlin Dev Day
⊢ Types and Categories
Category Theory through Functional Programming
LambdaConf Winter Retreat
by 47 Degrees
Casual conversations about important open source libraries with maintainers and contributors
Purely functional framework for building micro services
Little utilities for more pleasant immutable data in Kotlin
Datatype-generic programming for GADTs and higher-kinded types
Arrow Analysis Kotlin
Pre-, post-condition, and invariant checks for your Kotlin code
Part of the Arrow project
Tool to learn pattern matching for several languages
Better initial-style DSLs in Kotlin