Community Resources

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

In this meetup we discuss the new features of Arrow Fx to write “effectful” programs with an emphasis on simple and declarative programming for everyone. Additionally, we see how Arrow Meta works and how we can use it to improve the ergonomics of Functional Programming in Kotlin.

  • December 19, 2019

Arrow Meta - Enabling Functional Programming in the Kotlin Compiler

Arrow Meta is a library that empowers library and application authors with the ability to write plugins for the Kotlin compiler. Compiler plugins have access to all compiler phases and can intercept and modify the AST, descriptors, and IR intermediate lang for bytecode generation.

  • October 18, 2019

Effect polymorphism with Arrow FX

Wonder how to handle side effects in a very clean way while abstracting the real effect implementation? #Arrow #FX provides an easy way to do this, without the burden of Higher-Kinded Types.

  • July 22, 2019

Self-contained example of testing with modules and Arrow FX

This post shows a porting with Kotlin and Arrow FX of a self-contained testing example with Scala ZIO

  • July 05, 2019

Modular functional programming with Kotlin

This post proposes a possible solution in order to structure and compose a pure functional Kotlin application, in order to better manage and decouple modules, get simpler tests and manage the Dependency Injection at compile time.

  • July 02, 2019

Kotliners 2019 - ArrowFx Functional Programming for the masses

In this talk we recap about the imminent future of Functional Programming in Kotlin. With ArrowFx you are able to encode “effectful” programs in a controlled way following the FP principles through a direct syntax. You’ll think you’re writing imperative code!

  • June 07, 2019
version 0.9.0

How KEEP-87 & Typeclasses will change the way we write Kotlin

Short introduction into the proposal KEEP-87 and how it would be able to improve the language.

  • June 04, 2019

Immutable Conversations - Past and Future of Arrow

In this episode, we capture a conversation between Arrow maintainers Raúl Raja and Paco Estevez as they discuss the past and future of the library which is designed to bring Functional Programming to Kotlin.

  • March 12, 2019
version 0.8.2

From Imperative to Functional Programming using Arrow

As its name implies, From Imperative to Functional Programming using Arrow is a tale about migrating a simple Kotlin application written in imperative style to a fully function application with the help of the Arrow library.

  • February 10, 2019
version 0.8.2

Webflux with Kotlin and Arrow

Webflux with Kotlin and Arrow shows how you can use Arrow together with Spring Webflux to create a reactive REST application. This article explains how to use the MonoK and the FluxK Arrow extensions together with the binding function to make working with the Mono and Flux reactor constructs much easier and better understandable.

  • February 03, 2019
version 0.8.1

Getting started with FP in Kotlin and Arrow: Typeclasses

Getting started with FP in Kotlin and Arrow: Typeclasses explores part of the Arrow library by explaining how you can use Arrow to create your own typeclasses and use the ones provided by Arrow to make your code more concise and better readable.

  • January 03, 2019
version 0.8.1

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 30, 2018
version 0.8.1

Manual documentation is dead. Long live automated documentation! Automated documentation with ΛNK

It includes how the ΛNK plugin works: from having a tool that evaluates and verifies your doc snippets at compile time, to generating code documentation that is always correct and up to date.

  • droidconSF, San Francisco
  • November 24, 2018

Arrow Tiny Cards Flashcards

Arrow-kt collection: data types, type classes, effects, optics, generic, free, recursion schemes.

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

  • November 15, 2018
version 0.8.0

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. You can follow along the example in this folder.

  • AndroidTO, Toronto
  • November 07, 2018
version 0.7.3

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 21, 2018
version 0.8.2

Architecting Typed FP Applications & Libraries in Kotlin with Λrrow

This talk includes a comprehensive walkthrough of the most important patterns covered by the data types and type classes we find in Λrrow. Each pattern will be accompanied by code examples that illustrate how Λrrow brings Typed Functional Programming to Kotlin.

Sources and slides

  • KotlinConf, Amsterdam
  • October 05, 2018
version 0.7.2

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 24, 2018
version 0.7.2

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.

  • Sunny Tech, Montpellier
  • June 27, 2018
version 0.7.2

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
  • June 24, 2018
version 0.7.3

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 24, 2018
version 0.7.3

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 22, 2018
version 0.7.3

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 23, 2018
version 0.7.3

Android Functional Validation

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

Video (in italian)

  • April 14, 2018
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
  • March 26, 2018
version 0.6.1

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
  • March 21, 2018
version 0.6.1

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
  • January 17, 2018
version 0.3.11

Functional Programming in Kotlin with Arrow

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

  • Lambda World, Cádiz
  • November 29, 2017
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
  • November 24, 2017
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

  • November 22, 2017
version 0.3.11

Architectures Using Functional Programming Concepts

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

  • KotlinConf, San Francisco
  • November 17, 2017
version 0.3.11

Kotlin for the Pragmatic Functionalist

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

  • KotlinConf, San Francisco
  • November 09, 2017
version 0.3.11

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

  • November 02, 2017
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ź
  • October 20, 2017
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

  • September 17, 2017