- cross-posted to:
- programming_languages@programming.dev
- hackernews@derp.foo
- OmnipotentEntity ( @OmnipotentEntity@beehaw.org ) 13•11 months ago
This is a cool idea. There are other programming languages that have libraries that expose similar behavior. For instance, Rust has the uom crate, Haskell has the units package, and C++ has the header only library SI.
But there is something to be said about it being built in.
- kureta ( @kureta@lemmy.ml ) 5•11 months ago
The web page says other libraries implement units whereas they implement dimensions. 1 cm and 1 inch has the same dimension, namely length, and you are able to add them together and get a correct result. seems nice. I don’t know if it’ll have any practical benefit but I like it.
- Starfighter ( @Starfighter@discuss.tchncs.de ) 3•11 months ago
I can’t talk about the other libraries but the uom crate does the same thing.
The dimensions are encoded as a vector of generics, allowing you to get the correct unit even when dividing a distance by time for example.
It’s quite the clever use of Rusts type system.
- Morphit ( @Morphit@feddit.uk ) 1•11 months ago
For sure. It’d be nice to have the units in a separate namespace but at least Numbat won’t let you override identifiers already defined in the system of measure. I use Pint on Python - I usually keep the units in an identifier named
u
so they can’t get accidentally overridden. That means either usingu.km
for single units oru('g/cm^3')
for composite units. It’d be great if the language could separate units e.g. as[km]
or `` but getting a compact syntax to distinguish the units namespace without colliding with other language features would be tricky. I remember F# having a good syntax but didn’t dive that deep since it’s not used widely in my field.
- Irdial ( @vhstape@lemmy.sdf.org ) English8•11 months ago
Wish I had this in engineering undergrad! Very cool.
- Nawor3565 ( @Nawor3565@lemmy.blahaj.zone ) English9•11 months ago
I’m currently in engineering undergrad and this looks like it’ll be a lifesaver. Wolfram Alpha can do some pretty good work with units sometimes. But a lot of the time it’ll do weird stuff like refuse to interpret “V” as “volt”, so you have to type out the full name of every single unit. This language should handle that a million times better.
- Lupec ( @lupec@lemm.ee ) 5•11 months ago
Fascinating idea, that was an interesting read! Don’t think I’d ever seen something like that done before.
- silas ( @silas@programming.dev ) English3•11 months ago
Really cool! Reminds me a bit of the Numi calculator too
- monotremata ( @monotremata@kbin.social ) 2•11 months ago
I do a lot of this stuff with the HP48 Units menu (albeit at this point via an emulator on my phone).
- stilgar [he/him] ( @stilgar@infosec.pub ) English1•11 months ago
This looks like a lot of fun to use, I loved the example from What If, so many units!