Blogs & Presentations

A selection of external links to some of the content created by maintainers and users.

State of the functional ecosystem in Kotlin: Mid 2018 checkup

This talk focuses on the day-to-day problems Arrow solves, from small ideas to big concepts.

It includes an overview of all the modules available, and some of the 3rd party libraries made by the community.

Conference for Kotliners, Budapest, Jun ‘18 - version 0.7.2

Functional Programming in Kotlin with Arrow

A rundown of all the features included in the library, focusing on implementation details.

Lambda World, Cadiz, Nov ‘17 - version 0.3.11

Architectures Using Functional Programming Concepts

Introductory talk to Functional architectures to be built on top of Arrow.

KotlinConf, San Francisco, Nov ‘17 - version 0.3.11

Building a DSL… in Kotlin

Make DSLs stack safe, composable and reusable under different runtime requirements thanks to Arrow.

droidconSF, San Francisco, Nov ‘17 - version 0.3.11

Functional approach to Android architecture using Kotlin

Move side effects to the edges of the system, implement a functional oriented architecture for Android apps based on purity.

Mobilization 7, Łódź, Oct ‘17 - version 0.3.11

Simple Dependency Management in Kotlin

In this talk we introduce the concepts of Dependency Management as a language feature, typeclasses, and a live demo of KEEP-87.

AndroidTO, Toronto, Nov ‘18 - version 0.8.0

Kotlin for the Pragmatic Functionalist

An introduction to Arrow and the enhancements it brings to Kotlin’s standard library.

KotlinConf, San Francisco, Nov ‘17 - version 0.3.11

It’s all about morphisms

@uberto gives a gentle introduction to Category Theory for programmers used to OOP but interested in Functional Programming. No Haskell knowledge required. We will explain main concepts behind functional programming with many diagrams and simple metaphors and examples. Some code will clarify how to translate these ideas in programs.

Voxxed Days, Vienna, Mar ‘18 - version 0.6.1

Introduction to Kotlin Arrow by Jacob Bass

@bassjacob goes through how Funktionale and Kategory merged into Arrow, consolidating two of the most popular FP libraries in the Kotlin space into one powerhouse. The talk is an introduction to some FP concepts, how the libraries work, what features they bring to the table and where you might use them in your code.

Kotlin Meetup, Sydney, Mar ‘18 - version 0.6.1

Functional Programming in Kotlin with Arrow by Emmanuel Nhan

@nhanmanu introduces Kotlin and how it is a good fit for functional programming. The talk goes through some interesting features of Kotlin, then show how to use them to enter the world of Higher Kinds and Typeclasses. In the last part, we explore some Arrow capabilities & built-in syntax, using validation as an example.

Functional programming in kotlin with Arrow [Sunnytech 2018] de Emmanuel Nhan

Sunny Tech, Montpellier, June ‘18 - version 0.7.2

Higher Kinded Types in a Lower Kinded Language by Jacob Bass

It’s hard coming back down to the earth of a JVM based language after spending time with Haskell and OCaml. This talk will discuss functional programming in Kotlin with the Arrow library, how the abstractions it provides can improve your code, and how this magic that provides higher-kinded types works under the hood.

Yow! Lambda Jam, Sydney, Australia, June ‘18 - version 0.7

Arrow and Functional Programming for Kotlin Developers

A beginner level introduction to Functional Programming for Kotlin and/or Android Developers or developers with OOP background.

DroidJam India, Bangalore, India, July ‘18 - version 0.7.2

Functional Programming in Kotlin

An ongoing blog series introducing Functional Programming architectures from scratch

Kotlin Functional Programming: Does it make sense?

Kotlin Functional Programming I: Monad Stack

Kotlin Functional Programming II: Monad Transformers

Nov ‘17 - version 0.3.11

Happy Path: Kotlin + Actors + Arrow

@javipacheco creates a Proof of Concept architecture for Android using the Actor pattern and modelling the domain with Either.

Happy Path: Kotlin + Actors + Arrow

Nov ‘17 - version 0.3.11

Handling exceptions in Arrow

@uris77 explains how to use Try in real world examples.

Handling Kotlin Exceptions with Arrow – A Functional Approach

Sept ‘17 - version 0.3.11

Optics and Type Classes in Arrow

@msya explains how to use various optics and type classes in Arrow. He discusses optics such as Lens and Iso. He also goes over the purpose for type classes and how KEEP-87 will make it easier to implement them.

Functional Programming with Arrow

Kotlin Brooklyn Meetup, Jan ‘18 - version 0.6.1

Android Functional Validation

@dcampogiani explores some data types in Arrow and uses them to validate a form on Android.

Video in Italian

April ‘18 - version 0.7

1/n - How do I … in FP : Validation

Emmanuel Nhan showcases different approaches to validation including examples for ValidatedNel from Arrow in this great and in depth post using Kafka Streams Config parameters as example.

1/n - How do I … in FP : Validation

April ‘18 - version 0.7

Arrow 101 — Building an Android app using Functional Programming

Leandro Ferreira presents how to build a simple app using Arrow and how to implement solutions with Semigroups.

Arrow 101 — Building an Android app using Functional Programming

Arrow 101 — Modelling a real world problem with Semigroups

June ‘18 - version 0.7

Polyjokes — A polymorphic approach using Arrow

@dcampogiani is using a polymorphic approach to retrieve a random user and then a joke about him.

Polyjokes — A polymorphic approach using Arrow

October ‘18 - version 0.7.3

Arrow-kt Tiny Cards Flashcards

Arrow-kt Collection Data types, type classes, effects, optics, generic, free, recursion schemes

DM Ersin on Gitter or Slack if you have more concise/simpler definitions, can correct misinterpretations, or can help with a deck

Functional Hangman Game written with Arrow

Functional Hangman game - console application written with Arrow. Uses the IO<A> monad to push side effects to the edge of the system.

November ‘18 - version 0.8.1