matryoshka
droste
matryoshka | droste | |
---|---|---|
2 | 1 | |
809 | 384 | |
-0.1% | 0.0% | |
0.0 | 7.6 | |
about 4 years ago | 16 days ago | |
Scala | Scala | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
matryoshka
-
Ask HN: How has functional programming influenced your thinking?
I did work in Scala for a few years. We employed Cats[1], and even a bit of Matryoshka[2] though most of the work I do today is in Python.
Nowadays I think about computational requirements in terms of relations among behavioral dependencies. Like, "I want to perform operation O on input A and return a B. To do this, I'll need a way to a -> b and a way to b -> b -> b." I often pass these behavioral dependencies in as arguments and it tends to make the inner core of my programs pretty abstract and built up as layers of specificity.
Zooming out nearly all the way, it makes me feel tethered in a qualitatively unique way to certain deep truths of the universe. In a Platonic sense, invoking certain ideas like a monad make me feel like I'm approaching the divine or at least one instantiation of a timeless universal that operates outside of material existence.
I'd imagine some mathematicians might see the universe in a similar way - one where immortal relations between ontological forms exist beyond time and space and at the same time can be threaded through the material world by intellectual observation and when those two meet a beautiful collision occurs.
1. https://typelevel.org/cats/
2. https://github.com/precog/matryoshka
-
Data Structure in Scala for a Recursive data type
There is a recommended lib for that, Matryoshka.
droste
-
What is the most advanced functional programming concept that is commonly used in production Scala code that you have seen?
Well, sure. I wouldn’t want to roll my own recursion schemes library for every project. Thankfully, Droste already exists. And the learning curve is certainly real, but it’s like anything else: once you see certain patterns frequently enough, the learning curve to address them once and for all becomes worth it. What I especially like about Rob’s presentation is that it’s a real-world example: representing recursive data in a system that doesn’t support it natively, so you have to encode that somehow, and it turns out “how” is one of those things that’s already been answered in typed lambda calculus circles, and Rob derives the basics of it from scratch.
What are some alternatives?
Kategory - Λrrow - Functional companion to Kotlin's Standard Library
dada - A total recursion scheme library for Dhall
Optimus * 96 - Optimus is a mathematical programming library for Scala.
cats - Lightweight, modular, and extensible library for functional programming.
endless - endless is a library to build distributed systems in functional Scala using a pluggable runtime model
talk-transcripts - Transcripts of Clojure-related talks