SumTypes.jl
Juleps
SumTypes.jl | Juleps | |
---|---|---|
2 | 2 | |
92 | 67 | |
- | - | |
7.8 | 0.0 | |
3 months ago | almost 4 years ago | |
Julia | ||
MIT License | GNU General Public License v3.0 or later |
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.
SumTypes.jl
-
Enums in Rust – and why they feel better
An interesting aspect of sum types (what Rust calls enums) is that you can implement them in the language as a library if you have real unions, but not vice-versa.
Here's my example of sum types being implemented in julia as a regular package: https://github.com/MasonProtter/SumTypes.jl
-
From Julia to Rust
> Pattern matching
MLStyle.jl [1] is quite nice for this and has been around for a while.
> Tagged, closed unions
These are less general than 'real' unions and can be implemented using them. E.g. SumTypes.jl [2] has some macros to make it a bit more convenient to define them, it could use some other quality of life features though.
[1] https://thautwarm.github.io/MLStyle.jl/latest/syntax/pattern...
[2] https://github.com/MasonProtter/SumTypes.jl
Juleps
What are some alternatives?
Octavian.jl - Multi-threaded BLAS-like library that provides pure Julia matrix multiplication
DIPs - D Improvement Proposals
StaticArrays.jl - Statically sized arrays for Julia
Catlab.jl - A framework for applied category theory in the Julia language
IRTools.jl - Mike's Little Intermediate Representation
Symbolics.jl - Symbolic programming for the next generation of numerical software
JET.jl - An experimental code analyzer for Julia. No need for additional type annotations.
egg - egg is a flexible, high-performance e-graph library
glow - Compiler for Neural Network hardware accelerators
Metatheory.jl - General purpose algebraic metaprogramming and symbolic computation library for the Julia programming language: E-Graphs & equality saturation, term rewriting and more.
proposals - ✍️ Tracking the status of Babel's implementation of TC39 proposals (may be out of date)