Remove what-the-functor
article thumbnail

Extending destination-passing style programming to arbitrary data types in Linear Haskell

Tweag

What is Destination-passing style programming? Three years ago, a blog post introduced destination-passing style (DPS) programming in Haskell, focusing on array processing, for which the API was made safe thanks to Linear Haskell. On strict data structures, however, non-tail recursive consume stack space. Actually, Bour et al.

article thumbnail

How to Write a Full-Stack Scala 3 Application with the Typelevel Stack

Rock the JVM

The Cats library offers general functional programming abstractions, e.g. functors , monads , applicatives, etc; while the Cats Effect library defines what it means to be an “effect”. Introduction The Typelevel stack is one of the most powerful sets of libraries in the Scala ecosystem. If you’re interested, check out the course here.

Scala 58
Insiders

Sign Up for our Newsletter

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

article thumbnail

ZIO Streams: A Long-Form Introduction

Rock the JVM

In this post, we’re going to go over an introduction to the main components of ZIO Streams, how to work with them when things go right, and what to do when things go wrong. RC8" ) What’s a Stream? This article is brought to you by Mark Rudolph , a new contributor to Rock the JVM. code, which was officially released on June 24th, 2022.

Scala 40
article thumbnail

Why We Do Scala in Zalando

Zalando Engineering

However, what bugged me was the amount of code required to encourage immutability and not having lambdas to transform collections. Leveraging the full power of a functional programming language In Zalando Dublin, you will find that most engineering teams are writing their applications using Scala. I liked Java.

Scala 40
article thumbnail

Practical Type-Level Programming in Scala 3

Rock the JVM

Introduction Scala 3 boasts many features that are meant to simplify and enhance type-level programming: match types, inlines, diverse compile-time operations, and the list goes on. With all these new features it is quite easy to get lost when trying to solve a concrete problem using type-level techniques. Let’s dig in!

Scala 94