Scala does not move in the direction of more monadic IO, but rather in the direction of “direct style”, preferring continuations to monads, but without providing support for continuations out of the box.| Alexandru Nedelcu
While Dart is in its core an object-oriented programming language, that doesn’t mean that you’re stuck only with that paradigm. In fact, Dart is something called a multi-paradigm language! Functional programming (FP) makes your code easier to test and reuse, and also makes it less error prone. With Dart, it’s easy to start introducing practical functional […] The post Practical Functional Programming in Dart & Flutter appeared first on Reso Coder.| Reso Coder
What’s the difference?| Alexandru Nedelcu - Blog
Kotlin Coroutines are usually integrated in Java code via Java’s CompletableFuture, but a tighter integration might be possible with Cats-Effect.| Alexandru Nedelcu - Blog
We are using a combination of Akka and Cats-Effect (ver. 3) for building payment processors. This post describes some solutions we’ve discovered.| Alexandru Nedelcu - Blog
Mutable collection types should only be used strategically, with purpose, otherwise for correctness/safety purposes, the default should be immutable collection types, aka persistent data structures.| Alexandru Nedelcu - Blog
The marketing for Functional Programming is made of technobabble. Technobabble was used in Star Trek. Those long discussions are what Star Trek was loved for, but technobabble isn’t good for sharing knowledge or advancing our field.| Alexandru Nedelcu - Blog
As Scala developers and fans of the functional programming promoted by Haskell, how do we justify the use of IO to newbies coming from Java? It’s been a fun ride, but the truth is that Java 19 is changing everything.| Alexandru Nedelcu - Blog
What if we’d use Scala’s type system for tracking side-effects in impure code, too? In the Scala/FP community we use and love effect systems, such as Cats Effect, with its IO data type. “Suspending side-effects” in IO is great, but in Scala it’s either IO or forgoing any kind of type-safety for side-effects, and that’s bad.| Alexandru Nedelcu - Blog
This is the 1st article of a series that explores the difference between OOP design, and parametric polymorphism with Type Classes, as both are possible in Scala.| Alexandru Nedelcu - Blog
I don’t like given, as an alternative to implicit in Scala 3. The more I try working with it, the more it annoys me; and my understanding may be superficial, but I don’t like this direction. Here’s a comparisson between given and implicit, that I hope is fair…| Alexandru Nedelcu - Blog
Scala is considered a multi-paradigm language, for better or worse, being one of the best OOP languages, which is why it’s so versatile. Let’s do a design exercise, going from OOP to static FP, and back. Let’s understand the various techniques promoted in the community, and understand why the OOP design isn’t just “idiomatic” for Scala, but can be superior to alternatives.| Alexandru Nedelcu - Blog
I just refactored a piece of code. I deleted 6 source code files, and rebuilt the functionality with a bunch of dirty OOP classes shoved in a single file 😱| Alexandru Nedelcu - Blog
Online meetup on Scala 3’s newly introduced types and features for encoding type classes.| Alexandru Nedelcu - Blog
OOP couples the data with the methods operating on it, and this is considered bad in FP circles. But is it?| Alexandru Nedelcu - Blog
Turning imperative algorithms to tail-recursive functions isn’t necessarily obvious. In this article (and video) I’m showing you the trick you need, and in doing so, we’ll discover the Zen of Functional Programming.| Alexandru Nedelcu - Blog
Snippet of code discussing Tagless Final vs OOP-style dependency injection.| Alexandru Nedelcu - Blog
Helpers for integrating with cats.effect.IO.| Alexandru Nedelcu - Blog
The database schema should be described as code, in your repository. And you should be able to semi-automatically update your database schema on new deployments.| Alexandru Nedelcu - Blog
We should strive to make illegal states unrepresentable. Option.get is a partial function that, according to many, shouldn’t be in the standard library. Yet it doesn’t bother me; the inability of Scala to make it safe is the problem.| Alexandru Nedelcu - Blog
IOApp alternative, for Cats Effect v2, that can work with any effect type.| Alexandru Nedelcu - Blog
Defining a “runtime” for Cats-Effect v2 that provides the underlying environment necessary (i.e. ContextShift, Timer, Clock).| Alexandru Nedelcu - Blog
Retry actions ending in failure via simple functions and Typelevel Cats type-classes.| Alexandru Nedelcu - Blog
Cindy Rubio Gonzáles recently visited UW PLSE and gave a fantastic lecture on her work—both on Precimonious and on her ICSE'16 paper on blame analysis. I spent some time this weekend reading that paper carefully and thinking about how it relates to my floating-point work. I think blame analysis is related to a key technique that appears in both Herbie and Herbgrind: local error. Local error To identify the operations in a floating-point computation most responsible for error, local error l...| Pavel Panchekha’s Blog
Some fundamentals of functional programming| John Azariah’s Blog
Last time we have become familiar with the very basics of category theory, and even had a look at some scala code covering isomorphisms. It is time for looki...| miklos-martin.github.io
This post is the first in a planned series about my adventures in category theory. The plan is that as I build my understandings, I post a note here.I roughl...| miklos-martin.github.io
In the last post we have seen how our very own typeclasses can come in handy, and how we can use them in combination with Monads.I will assume you have read ...| miklos-martin.github.io
Ever wondered how could your own typeclasses come in handy? This post covers a use case.| miklos-martin.github.io