Community Resources

A selection of external links to some of the content created by maintainers and users
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

KotlinConf 2018 - Functional Programming in Kotlin with Λrrow by @raulraja


Architecting Typed FP Applications & Libraries in Kotlin with Λrrow

video sources and slides raulraja

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 the Kotlin Programming Language.

We will learn the fundamentals of Typed Functional Programming applied to Kotlin with the library Arrow and how we can architect applications and libraries that are polymorphic and composed of pure abstract functions using type classes.

Arrow provides a unified programming model in by which Kotlin practitioners can build programs relying on the traditional FP, MTL and Effect type classes in a Tagless Final style offering levels of flexibility and techniques new to the Kotlin FP community.

  • 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