SumTypes.jl
MacroTools.jl
SumTypes.jl | MacroTools.jl | |
---|---|---|
2 | 2 | |
93 | 303 | |
- | 0.7% | |
7.8 | 6.8 | |
3 months ago | 13 days ago | |
Julia | 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
MacroTools.jl
-
Split up Julia expression into sub-expressions
Is macrotools.jl a package that could be helpful?
- From Julia to Rust
What are some alternatives?
Octavian.jl - Multi-threaded BLAS-like library that provides pure Julia matrix multiplication
Metatheory.jl - Makes Julia reason with equations. General purpose metaprogramming, symbolic computation and algebraic equational reasoning library for the Julia programming language: E-Graphs & equality saturation, term rewriting and more.
StaticArrays.jl - Statically sized arrays for Julia
Catlab.jl - A framework for applied category theory in the Julia language
Symbolics.jl - Symbolic programming for the next generation of numerical software
julia - The Julia Programming Language
egg - egg is a flexible, high-performance e-graph library
glow - Compiler for Neural Network hardware accelerators