Media

post image


Arrow put on a big show at Kotlin Dev Day

  • June 14, 2022

A recap of the attention Arrow received at Kotlin Dev Day.

Arrow Core Arrow Fx
post image


Building applications with Kotlin and Arrow.kt in style

  • May 31, 2022

A presentation by Simon Vergauwen presented on the official Kotlin YouTube channel.

Arrow Core Arrow Fx
post image


Functional programming in Kotlin: exploring Arrow by Ties Van de Ven

  • Devoxx UK
  • May 18, 2022

A talk by Ties van de Ven that shows how Arrow helps to unleash the full FP power of Kotlin.

Arrow Core Arrow Optics
post image

Domain Model Validation In Kotlin: Part 4

  • March 31, 2022

In this final part of the series, Tiberiu puts everything together in a small CLI application, using Arrow data types and computation blocks to handle validation errors and exceptions in a unitary and composable way.

Arrow Core
post image

Domain Model Validation In Kotlin: Part 3

  • March 10, 2022

In the third part of the series, Tiberiu Tofan explores multiple techniques of using a context when doing validations and how the context can be changed in the tests to simulate success or failure. All using just Kotlin standard library.

Arrow Core
post image

Domain Model Validation In Kotlin: Part 2

  • March 03, 2022

In the second article in this series, Tiberiu Tofan writes how Validated type can be used to validate multiple properties, accumulate the errors, apply individual element validations to lists of elements, and create rules that depend on numerous properties.

Arrow Core
post image

Domain Model Validation In Kotlin: Part 1

  • February 22, 2022

In the first article in this series, Tiberiu Tofan describes his team’s journey using Kotlin and Arrow for domain model validation, starting by setting the domain model’s foundation in a type-safe way.

Arrow Core
post image

Functional programming in Kotlin with Arrow

  • December 15, 2021

A presentation by Simon Vergauwen and Alejandro Serrano presented on the official Kotlin YouTube channel.

Arrow Core
post image


Functional programming in Kotlin: Exploring Arrow

  • Kotlin Dev Day Amsterdam
  • November 30, 2021

A talk by Ties van de Ven explaining how to use the Either monad in practice, and how to use Arrow Optics lenses.

Arrow Core Arrow Optics
post image

Arrow of Outrageous Error Handling

  • Android Worldwide
  • August 12, 2021

An Android Worldwide talk by David Rawson about error handling on Android using Arrow.

Arrow Core
post image

Functional Domain Modeling in Kotlin - Validation

  • April 13, 2021

In part two of Functional Domain Modeling in Kotlin, Simon Vergauwen shows how to improve a domain with validation.

Arrow Core
post image

Your own custom Spring Data repository

  • April 11, 2021

How to integrate Spring Data Repository with Arrow.

Arrow Core
post image

Functional Domain Modeling in Kotlin

  • April 11, 2021

Learn how to leverage Functional Domain Modeling to fully utilize the Kotlin type system and prevent bugs.

Arrow Core
post image

Arrow 0.12.0 & 0.13.1 are now available

  • April 01, 2021

Arrow 0.12.0 & 0.13.1 are now available, featuring streamlining of the library for 1.0.0.

Arrow Core
post image

Advanced FP for the Enterprise Bee: Shiny Things

  • February 26, 2021

Garth Gilmour concludes his 8-part series introducing advanced FP concepts via Kotlin and Arrow.

Arrow Core
post image

Advanced FP for the Enterprise Bee: State

  • February 19, 2021

This is the seventh post in a series written by Garth Gilmour introducing advanced FP concepts via Kotlin and Arrow. This article explores the world of Monads, and, in particular, the State type.

Arrow Core
post image

Hands-on Arrow

  • GDG Nuremberg
  • February 12, 2021

A video from the meetup of the Google Developer Group based in Nuremberg with a presentation by Karin-Aleksandra Monoid about using Arrow.

Arrow Core
post image

Advanced FP for the Enterprise Bee: Optics

  • February 10, 2021

This is the sixth post in a series introducing advanced FP concepts via Kotlin and Arrow. This article covers Optics with Kotlin and Arrow.

Arrow Core
post image

Advanced FP for the Enterprise Bee: Typeclasses

  • February 05, 2021

This fifth post in a series introduces advanced FP concepts via Kotlin and Arrow. This article introduces Typeclasses, and reviews a practical example of Typeclasses from the Arrow library.

Arrow Core
post image

Advanced FP for the Enterprise Bee: Kleisli

  • January 29, 2021

This fourth post in a series introduces advanced FP concepts via Kotlin and Arrow. This article looks at the Kleisli type.

Arrow Core
post image

Advanced FP for the Enterprise Bee: Higher Kinded Types

  • January 22, 2021

This third post in a series introduces advanced FP concepts via Kotlin and Arrow. This article shows the usefulness of Higher Kinded Types.

Arrow Core
post image

FP concepts with Arrow

  • Belfast KUG
  • January 20, 2021

A video from the Belfast Kotlin User Group with a presentation by Katie Levy and Shelby Cohen covering FP concepts with Arrow.

Arrow Core
post image

Advanced FP for the Enterprise Bee: Applicatives

  • January 15, 2021

This second post in a series introduces advanced FP concepts via Kotlin and Arrow. This article takes a deep dive into Applicatives.

Arrow Core
post image

Advanced FP for the Enterprise Bee: Traverse

  • January 08, 2021

This first post in a series introduces advanced FP concepts via Kotlin and Arrow. This article takes a deep dive into the Traverse operation.

Arrow Core
post image


Roll your own Computation blocks in Kotlin

  • Lambda Lille
  • December 16, 2020

Computation blocks empower library authors and users to build ad-hoc operators and DSLs over any data-type getting rid of API complexity and simplifying composition. In this talk, we will learn how we can build Computation blocks over Kotlin suspend functions & the Arrow Continuations library’s reset / shift capabilities. We will demonstrate the composition of well known JVM data-types and patterns such as lists, futures, streams, and IOs, where callback chains can be simply replaced by a single suspended operator. The Kotlin suspension system provides enough capabilities to implement delimited continuations allowing us to ignore methods such as map & flatMap on your favorite data-type in favor of direct imperative syntax. Leveraging Kotlin suspension & thinking of Continuations as “The Mother of all Monads”, we will embark on this journey where we’ll build and roll our own computation blocks with Arrow Continuations.

Arrow Core Arrow Fx
post image

Fight Complexity with Functional Programming

  • All Things Open 2020
  • November 19, 2020

A Metric-driven approach to reduce Cognitive Complexity in a code base, using Functional Programming, demoed hands-on, by solving a complex real-world ubiquitous design challenge - REST API Bulk Request Validation, with an extensible Framework that separates what-to-do (Validations) from how-to-do (Validation Orchestration). Let’s do a case study of a successful implementation done by our team in the world’s largest SaaS org, Salesforce, using Kotlin and Arrow.

Arrow Core
post image

Technology Radar Promotes Arrow to 'Adopt'

  • October 28, 2020

Arrow has been promoted to “Adopt” by ThoughtWorks’ technology guide Technology Radar.

Arrow Core
post image

How to fix the pain of modifying Kotlin nested data classes

  • October 28, 2020

Lenses are not part of the Kotlin Standard Library yet, so we will need to use an Open Source library called Arrow-kt. Arrow-kt is a huge community effort to bring some of the missing functional programming features to Kotlin.

Arrow Core
post image

Arrow Promoted to Adopt by Technology Radar

  • October 28, 2020

Arrow is promoted as the functional companion for Kotlin’s standard library. Indeed, the package of ready-to-use higher-level abstractions delivered by Arrow has proven so useful that our teams now consider Arrow a sensible default when working with Kotlin. Recently, in preparation for the 1.0 release, the Arrow team introduced several changes, including the addition of new modules but also some deprecations and removals.

Arrow Core
post image

Asynchronisme et hexagone en Kotlin avec ArrowKt

  • Lambda Lille
  • June 11, 2020

J’aime bien le DDD et surtout les architectures hexagonales. Avoir un domaine auto-portant et non couplé à des blocs techniques comme Spring (ou autres) apporte beaucoup dans la testabilité et l’évolutivité de l’application. Les modèles d’asynchronismes (programmation réactive, retardée, coroutines…) empêchent la dissociation stricte de notre modèle métier et de notre code infra dans un langage comme Kotlin. Obligé d’utiliser une lib de coroutine ou autre programmation reactive. Deux solutions s’offrent alors :

  • Définir que les modèles d’asynchronisme sont des invariants de notre domaine et accepter ce couplage
  • Chercher comment modéliser notre domaine comme un ensemble de comportements asynchrones Dans ce talk nous allons voir comment réaliser la deuxième solution en utilisant la librairie Arrow et son modèle conceptuel d’asynchronisme pour nous permettre de découpler notre domaine de toute logique d’infrastructure.
Arrow Core
post image

Template-Oriented-Programming to Ship Faster

  • April 06, 2020

With a POC using Spring-fu + Kotlin + Arrow, let’s Convert Monomorphic code (for common use-cases such as Auth, Validation) to Polymorphic reusable templates, to be reused among heterogeneous services built on different tech-stacks (blocking/non-blocking). This helps accelerate feature development.

Arrow Core
post image

Template-Oriented-Programming to Ship Faster, Part-1

  • Kotlin User Group, Hyderabad, Online Meetup
  • April 06, 2020

Learn about the magic of Ad-hoc polymorphism using Λrrow typeclasses with simple examples.

Arrow Core
post image

Explaining the Arrow Android sample

  • April 01, 2020

Arrow is an exciting development for Kotlin developers interested in functional programming and, more broadly, pushing the limits of the Kotlin compiler.

Arrow Core
post image

What could possibly go wrong? - A safer programming with Arrow

  • February 26, 2020

Your Kotlin app grabs data from an API, transforms it and saves the processed data in a database. However, there are so many things that could go wrong at runtime: the API might be inaccessible, the data is not what you expected or the data can’t be persisted in the database. You can start adding try catch blocks to your function in your objects, but there is a better way to do it: treat your impure functions as computations with context, pass them around just like other values, and make the necessary unsafe invocation from a single point of your app, your main function.

This talk will walk you through the core functional concepts of Arrow, you will learn how Some, Either and even IO are functor, applicative and monad. You can use the code example from this talk as a starting point for your Arrow-learning, to write safer, simpler and more elegant functional code in Kotlin.

Arrow Core
post image


Conway's Game of Life using Kotlin and Arrow

  • December 12, 2019

An article of a series on Functional Programming solutions for the Global Day of Coderetreat challenge. In this case, it shows an approach for it using Kotlin and Functional Programming provided by the Arrow library.

Arrow Core Arrow Fx
post image

Kotlin and Arrow: the functional way

  • xConf, Barcelona, Spain
  • August 08, 2019

Kotlin is a great language for developing server-side applications; it’s an object-oriented language and also a functional one, supporting features such as function types, lambdas or higher order functions. But…is this enough to switch completely from an imperative paradigm to a functional paradigm?

In this talk by Noe Luaces, we’ll see how features from Arrow library completes Kotlin in order to follow a pure functional way.

Arrow Core
post image


Self-contained example of testing with modules and Arrow FX

  • July 05, 2019

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

Arrow Core Arrow Fx
post image

Modular functional programming with Kotlin

  • July 02, 2019

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.

Arrow Core
post image

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

  • June 04, 2019

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

Arrow Core
post image

Introducing Arrow Playground

  • April 11, 2019

Arrow Playground is a JavaScript library that creates Kotlin-aware, including Arrow, editors capable of running code from HTML block elements. This is a fork of the original Kotlin Playground work done by the JetBrains team.

Arrow Core
post image


Immutable Conversations - Past and Future of Arrow

  • March 12, 2019

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.

Arrow Core Arrow Fx
post image


From Imperative to Functional Programming using Arrow

  • February 10, 2019

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.

Arrow Core Arrow Fx
post image


Webflux with Kotlin and Arrow

  • February 03, 2019

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.

Arrow Core Arrow Fx
post image


Getting started with FP in Kotlin and Arrow: Typeclasses

  • January 03, 2019

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.

Arrow Core Arrow Fx
post image


Functional Hangman Game written with Arrow

  • November 30, 2018

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

Arrow Core Arrow Fx
post image


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

  • droidconSF, San Francisco
  • November 24, 2018

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.

Arrow Core Arrow Incubator
post image

Simple Dependency Management in Kotlin

  • AndroidTO, Toronto
  • November 07, 2018

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.

Arrow Core
post image


Architecting Typed FP Applications & Libraries in Kotlin with Λrrow

  • KotlinConf, Amsterdam
  • October 05, 2018

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

Arrow Core Arrow Fx
post image

Arrow and Functional Programming for Kotlin Developers

  • DroidJam India, Bangalore, India
  • July 24, 2018

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

Arrow Core
post image

Functional Programming in Kotlin with Arrow by Emmanuel Nhan

  • Sunny Tech, Montpellier
  • June 27, 2018

@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.

Arrow Core
post image




State of the functional ecosystem in Kotlin: Mid 2018 checkup

  • Conference for Kotliners, Budapest
  • June 24, 2018

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.

Arrow Core Arrow Optics Arrow Fx Arrow Incubator
post image

Higher Kinded Types in a Lower Kinded Language by Jacob Bass

  • Yow! Lambda Jam, Sydney, Australia
  • June 22, 2018

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.

Arrow Core
post image

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

  • April 23, 2018

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

Arrow Core
post image

Introduction to Kotlin Arrow by Jacob Bass

  • Kotlin Meetup, Sydney
  • March 26, 2018

@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.

Arrow Core
post image

It's all about morphisms

  • Voxxed Days, Vienna
  • March 21, 2018

@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.

Arrow Core
post image


Optics and Type Classes in Arrow

  • Kotlin Brooklyn Meetup
  • January 17, 2018

@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

Arrow Core Arrow Optics
post image

Functional Programming in Kotlin with Arrow

  • Lambda World, Cádiz
  • November 29, 2017

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

Arrow Core
post image

Building a DSL… in Kotlin

  • droidconSF, San Francisco
  • November 24, 2017

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

Arrow Core
post image

Architectures Using Functional Programming Concepts

  • KotlinConf, San Francisco
  • November 17, 2017

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

Arrow Core
post image

Kotlin for the Pragmatic Functionalist

  • KotlinConf, San Francisco
  • November 09, 2017

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

Arrow Core
post image

Functional approach to Android architecture using Kotlin

  • Mobilization 7, Łódź
  • October 20, 2017

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

Arrow Core
post image





Arrow Docs

  • August 01, 2017

Take a look at the Λrrow documentation Here. Test and modify real-time code snippets.

Arrow Core Arrow Optics Arrow Fx Arrow Incubator Arrow Meta

Books

Recommended reading for learning Functional Programming in Kotlin from Arrow maintainers, users, and the Kotlin ecosystem: