• OmnipotentEntity@beehaw.org
    link
    fedilink
    arrow-up
    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@lemmy.ml
      link
      fedilink
      arrow-up
      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@discuss.tchncs.de
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        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 @feddit.uk
      link
      fedilink
      arrow-up
      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 using u.km for single units or u('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.

    • Nawor3565@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      9
      ·
      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@lemm.ee
    link
    fedilink
    arrow-up
    5
    ·
    11 months ago

    Fascinating idea, that was an interesting read! Don’t think I’d ever seen something like that done before.