# [racket] Numbers with dimensions

 From: Laurent (laurent.orseau at gmail.com) Date: Sun Oct 27 09:32:06 EDT 2013 Previous message: [racket] Numbers with dimensions Next message: [racket] Numbers with dimensions Messages sorted by: [date] [thread] [subject] [author]

```Indeed, the notion of dimension is not really what I was after. My
intention was rather to provide a useful unit converter.
If my current units are in N, and I multiply by square seconds, I think
it's not always desirable for the measure to be automatically converted to
m.kg.
Currently it does not support compound units for automatic conversions, but
that's something I want to do anyway (just don't know when).

It now supports more useful conversions, in particular from non-SI to
non-SI (as long as an intermediate SI unit can be used), for example:
> (measure->value
(convert* '(52.8 ft (s -1))
'(mi h)))
'(36.0 mi (h -1))

Laurent

On Sat, Oct 26, 2013 at 6:42 PM, Konrad Hinsen

> Laurent writes:
>
>  > Examples and details here:
>  > https://github.com/Metaxal/measures
>
> At first glance, I miss the notion of "dimension", which defines if
> two units are compatible, i.e. can be converted. If I understand your
> approach correctly (which I am not sure about), you consider each
> product of unit symbols as distinct. That means if someone enters a
> pressure in Pascal, and multiplies by an area in square meters, the
> result cannot be added to a force in Newton, although a Pascal is by
> definition a Newton per square meter.
>
> BTW, I can offer my Clojure units library for inspiration, if someone
> wants to implement a straightforward approach based on run-time checks:
>
>
> It deals with dimension compatibility, and allows the definition of
> any number of unit systems. Like pretty much any library I know of, it
> doesn't handle the particularity of the SI system of having distinct
> incompatible units with equal dimension, such as Bq (Bequerel) and Hz
> (Hertz), which are both 1/s but reserved for specific applications.
> My library will let you convert Hz to Bq without complaint.
>