dimensioned
FsFrink
dimensioned | FsFrink | |
---|---|---|
2 | 1 | |
293 | 4 | |
- | - | |
0.0 | 10.0 | |
over 1 year ago | almost 5 years ago | |
Rust | F# | |
MIT License | - |
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.
dimensioned
-
Frink is a programming language designed to make physical calculations simple
Rust as well. There are at least a few libraries to do it, but I'll link the one I wrote:
https://crates.io/crates/dimensioned
-
Please Put Units in Names
dimensioned[1] got me interested in Rust. I’m not far enough to recommend it, but the concept seems right.
[1] https://github.com/paholg/dimensioned
FsFrink
-
Frink is a programming language designed to make physical calculations simple
I came across this repo where someone actually took the time to convert Frink's unit data to F# (which also supports units of measure) and I got to wondering if Frink's inspired it.
https://github.com/avestura/FsFrink
BTW, I'd love to see more mainstream languages consider features like units of measure. I understand the tech-debt it would likely-incur, but I think it would be a fun mental exercise to really go through the different languages and ask how one might add units of measure.
For example, in F#, the units are erased when they're compiled, so there is no runtime support for units. But I could imagine a dynamic/weaker typed language implementing it with runtime support where units are implemented like atomic symbols that are paired with numbers. Maybe each compound unit could be represented with a unique symbol that's created at runtime.
Personally, I don't think languages explore enough with interesting literals. Combining units with non-numeric types like strings might make interpolation a little more interesting.
What are some alternatives?
Unchained - A fully type safe, compile time only units library.
unitdc-rs - A dc-like arbitrary precision quantity calculator.
typical - Data interchange with algebraic data types.
units - The home of the units Haskell package
durationcheck - Go linter to detect erroneous multiplication of duration values
rink-rs - Unit conversion tool and library written in rust
image-size - Node module for detecting image dimensions
NodaTime - A better date and time API for .NET
SI - A header only C++ library that provides type safety and user defined literals for physical units
kal - A powerful, easy-to-use, and easy-to-read programming language for the future.