Top 23 Functional Open-Source Projects
Reactive Programming in SwiftProject mention: DispatchGroup in Swift | dev.to | 2021-03-06
We have defined what async code is, and two basic issues we could have when working with it: running tasks serially and in parallel. For running tasks in parallel we saw that DispatchGroup can be a simple solution for that. I will recommend using a library for this though. What I taught you here is basic async knowledge, but in real world scenarios, this won't be this straightforward, so using a battle tested library is always an advantage when working in production. I personally recommend using Apple's Combine if you can (it is supported in iOS 13 and above) or using RxSwift otherwise Finally, I can't finish this article without mentioning async-await. With async-await, probably all of this discussion will be a thing of the past. It lets us write async code that can be written like sync code. You can see the proposal (already implemented and that will be released in the next version of swift) here, and even try it in your code following a tutorial like this one.
Some data types are not traversable (e.g. IO), so the traverse function may not be available. Here, Option is traversable and E.either is an instance of Applicative, so we can use it to transform an Option> into a Parser>.
Scout APM - Leading-edge performance monitoring starting at $39/month. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
Small, fast, modern HTTP server for Erlang/OTP.Project mention: Ti hogy implementálnátok a https://vakcinareg.neak.gov.hu/regisztracio oldalt? | reddit.com/r/programmingHungary | 2021-03-25
Jsonnet - The data templating languageProject mention: The Norway Problem | news.ycombinator.com | 2021-04-03
For hand-writing I love jsonnet, which produces JSON, is much more convenient to write, and has some templating, functions etc. https://jsonnet.org/
You wouldn't serialize data structures to jsonnet though, you'd just generate JSON.
A powerful little TUI framework 🏗Project mention: Lip Gloss - a CSS like layout library for your terminal apps | reddit.com/r/golang | 2021-04-03
If you use Lip Gloss with Bubble Tea, then yes! Specifically, check out the viewport component in Bubbles, a Bubble Tea component library, for scrollable views.
Hybrid visual and textual functional programming.Project mention: Enso 2.0 Syntax Reference is out! | reddit.com/r/ProgrammingLanguages | 2021-04-27
Hmm, the new version should be running fast. It runs with 60 FPS on my MacBook. Would you be so nice and help us debug the issues you have? Also, are you sure you are using Enso 2.0, and not the old Luna release? If so, would you be so nice and describe your hardware setup, how you run it, and the problems you experience here? https://github.com/enso-org/enso/issues
A statically typed lisp, without a GC, for real-time applications.Project mention: uLisp | news.ycombinator.com | 2021-05-04
Another commenter already mentioned Gambit Scheme. That provides for inline C and therefore very easy interop with external libraries. It still has a runtime and GC though - those might pose a problem depending on your platform and task.
> anything but C
Taking you literally, Rust and D can both compile for bare metal. D in particular has a "Better C" subset. (https://dlang.org/spec/betterc.html)
In the same vein, Terra is a C like language (manual memory management) that you metaprogram with Lua. (https://github.com/terralang/terra)
Taking you very literally, Forth is also an option.
Pampy: The Pattern Matching for Python you always dreamed of.Project mention: why is scala considered hard? | reddit.com/r/scala | 2020-12-24
What about some Python's alternative then? https://github.com/santinic/pampy https://pythonawesome.com/pampy-the-pattern-matching-for-python-you-always-dreamed-of/
Simple, elegant, Pythonic functional programming.
A static, type inferred and embeddable language written in Rust.Project mention: Gluon | news.ycombinator.com | 2021-03-28
For the music theory stuff I'm using TonalJS along with my own extensions
⛱ Broadly scoped ecosystem & mono-repository of 151+ TypeScript projects for functional, data driven developmentProject mention: Ask HN: What was the biggest contributor to your happiness in the past year? | news.ycombinator.com | 2021-03-21
This a is a really wide field. Basically its starts with one of the standard algorithms, like and l-system, a voronoi diagram, or simple combination of sin and cos to draw shapes. Have a look at thi-ng, just as example for a library that has implemented a lot of this kind of algorithms. The next step in my process is to think about how to destroy this forms as most of them are used a lot in this field and become boring. Using perlin noise as input to arguments of the algorithms is one way to do this. The other part is to make most all of the input variables easily changeable as most of the time the whole process is like writing the program and then spend a lot of time adapt the parameters until you get some interesting output. So in the end I have a small Svelte app, using Svelte only cause the data binding for the inputs so simple, which has tons of sliders that renders an SVG that can be saved in the end.
Eclipse Collections is a collections framework for Java with optimized data structures and a rich, functional and fluent API.
Flexible and powerful universal routing solution
Persistent/Immutable/Functional data structures for PythonProject mention: What is the proper way to create a new copy for list, dictionary, tuples, and array | reddit.com/r/Python | 2021-04-28
This is normal for some functional languages, since by definition they should prohibit assignment and hence mutation. But you can also achieve a similar (not the same) effect in python, using libraries like pyrsistent (https://github.com/tobgu/pyrsistent/)
A new Unix shell.Project mention: Oh, a New Unix Shell | news.ycombinator.com | 2021-03-02
Suave is a simple web development F# library providing a lightweight web server and a set of combinators to manipulate route flow and task composition.
PyPika is a python SQL query builder that exposes the full richness of the SQL language using a syntax that reflects the resulting query. PyPika excels at all sorts of SQL queries but is especially useful for data analysis.Project mention: Migrating to SQLAlchemy 2.0 | news.ycombinator.com | 2021-02-18
There is a middle-ground between writing SQL statement strings in your code, and a full-blown ORM: query builders. At least in my experience with small to medium projects, these have far fewer footguns while keeping the code composable and readable. Here's one for Python: https://github.com/kayak/pypika
⚡ Flat-files and plain-old PHP functions rockin'on as a set of general purpose high-level abstractions.
The good news is: Not all is lost. The messages are still there if you take a look at the commits of the PR. It's just a little harder to backtrack. Here is one example of a commit I made that has tons of information (even with a link!) that got squashed away.
HTTP/1.1, HTTP/2 and Websocket client for Erlang/OTP. (by ninenines)
The modelling for success/failure of operations in Kotlin (by kittinunf)
📚 Functions and algorithms implemented purely with TypeScript's type systemProject mention: TypeScripts Type System is Turing Complete | reddit.com/r/programming | 2021-04-18
Here's another repository demonstrating functions and algorithms implemented solely using TypeScript's type system: https://github.com/ronami/meta-typing
What are some of the best open-source Functional projects? This list will help you: