Top 23 pattern-matching Open-Source Projects
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/
An Open Source Implementation of the Actor Model in C++
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.
STUMPY is a powerful and scalable Python library for computing a Matrix Profile, which can be used for a variety of time series data mining tasksProject mention: [D][R] Clustering techniques for time series - MSc thesis | reddit.com/r/MachineLearning | 2021-02-09
Haven't used it before, but I've seen a few powerpoints on https://github.com/TDAmeritrade/stumpy.
🎨 An exhaustive Pattern Matching library for TypeScript, with smart type inference.Project mention: How to practically use unions to prevent invalid states? | reddit.com/r/typescript | 2021-05-04
And then use nested switches to determine the new state when toggling one of the options. I've come to prefer dumb code. See this playground. You could also use a library like ts-pattern if you don't like nested switches.
The Egison Programming LanguageProject mention: The Egison Programming Language | news.ycombinator.com | 2021-03-08
Tools for transparent data transformationProject mention: What are some great Clojure libraries, as of 2021? | reddit.com/r/Clojure | 2021-03-30
I would mention meander for pattern matching and term rewriting https://github.com/noprompt/meander
Julia functional programming infrastructures and metaprogramming facilitiesProject mention: Pattern Matching Accepted for Python | news.ycombinator.com | 2021-02-09
> and we're stuck with an inferior Lisp/ML, especially in the scientific sector.
You will love Julia.
Here is some links:
Julia: Dynamism and Performance Reconciled by Design (https://dl.acm.org/doi/pdf/10.1145/3276490)
And when you start finding things that you miss, Julia and the community got you with excellent Metaprogramming support.
A pattern matching library for NimProject mention: Patten Matching in Nim | news.ycombinator.com | 2021-03-11
...except that macros don't change the syntax of the language! They just offer convenience on top of it, most common example is the `=>` lambda operator from the `sugar` module. I do agree, that the pattern matching macro presented in the article is a bit hard to get used to, but you don't have to, if you don't like pattern matching. And of course there are plenty of alternatives available as well, the simplest one imo is https://github.com/andreaferretti/patty
Pattern Matcher Compatible with OptimaProject mention: Pattern Matching Accepted for Python | news.ycombinator.com | 2021-02-09
> After much deliberation, the Python Steering Council is happy to announce that we have chosen to accept PEP 634, and its companion PEPs 635 and 636, collectively known as the Pattern Matching PEPs
This is why I'm still enamored with Lisp. One doesn't wait around for the high priests to descent from their lofty towers of much deep pontification and debate with shiny, gold tablets inscribed with how the PEPs may be, on behalf of the plebes. One just adds new language feature themselves, eg. pattern matching and software transactional memory.
Variable assignment with zeal! (or multiple, unpacking, and destructuring assignment in R)Project mention: How do I access the multiple return values in a function? | reddit.com/r/rstats | 2021-01-16
The zeallot package can do this. It allows you to assign multiple values from an output. You use a new assignment operator, %
Monad, Functional Programming features for Golang
⚡ Pattern Matching in TypescriptProject mention: Pattern-matching-ts: Pattern Matching in TypeScript | news.ycombinator.com | 2021-02-15
Zeronode - minimal building block for NodeJS microservices
Pattern Matching for Python 3.7+ in a simple, yet powerful, extensible manner.Project mention: scravy/awesome-pattern-matching Awesome Pattern Matching (apm) for Python | reddit.com/r/Python | 2021-01-04
Pattern matchings for Go.
Simple pattern-matching library for Clojure(Script)Project mention: clojure/core.unify | reddit.com/r/Clojure | 2021-01-16
here's a cool example using something like this in a pattern matching alg https://github.com/xapix-io/matchete/blob/master/dev/example/poker_hand.cljc
Library created for testing JSON against patterns.
A Java library for byte pattern matching and searchingProject mention: Knuth-Morris-Pratt string-searching algorithm: DFA-less version | news.ycombinator.com | 2021-01-22
That was a fun read, I liked the use of cmbc to validate the algorithm.
For those who are interested, there's a good tool to specifically test string matching algorithms here:
There are so many string matching algorithms now, with different best and worst cases. Some work better on low alphabets (eg DNA), so are better for text or high entropy data, some take advantage of CPU instructions, some are generic. The real challenge is picking the right algorithm.
I've implemented a few of them in java here, and extended them to support multi byte matching at any position:
Template Haskell Implementation of Egison Pattern Matching
Implementation of non-linear pattern matching with extensible and polymorphic patterns at a practical level of efficiency
Functional programming library for C#Project mention: Funk -> Functional programming library for C# | reddit.com/r/csharp | 2021-02-06
Small pattern matching tool using lodashProject mention: Pattern matching with Lodash - Minimal and typed | reddit.com/r/typescript | 2021-02-27
What are some of the best open-source pattern-matching projects? This list will help you:
|2||C++ Actor Framework||2,491|