From eb184b934ce3b07adc9af376dac488287efbd3d7 Mon Sep 17 00:00:00 2001 From: Mark Date: Wed, 2 Aug 2023 11:51:04 -0700 Subject: [PATCH] Updated README and TODO --- README.md | 10 +++++++++- TODO.md | 1 - 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1e6c57e..be0aca8 100644 --- a/README.md +++ b/README.md @@ -54,12 +54,20 @@ All documentation is built into the prompt. Use the `help` command to view it. The conversion operator `to` converts its left argument to the *unit* of its right argument, ignoring its value. For example, `5m to mi` and `5m to 10mi` are identical. +## Celsius and Fahrenheit + +Celsius and Fahrenheit are not supported as first-class units because they require an offset when converting from other temperature units. This leads to ambiguity when adding units, since one temperature must be seen as a *difference* rather than an absolute temperature. + +Daisy instead provides four functions (`fromCelsius`, `toCelsius`, `fromFahrenheit`, `toFahrenheit`) which convert between scalars and Kelvin. + - "from" functions take a scalar and return a value in Kelvin: `fromCelsius(0) = 273.15K` + - "to" functions take a value in Kelvin and return a scalar: `toCelsius(273.15 K) = 0` + + ## Multiplication Order Implicit multiplication has a higher priority than division. `pi/2 radians` will parse as `pi/(2 radians)`. Type `(pi/2) radians` or `pi/2 * radians` to get 90 degrees. - ## Inline Assignment The assignment operator `=` returns its value, and can thus be used inside of an expression. For example, `(a = 2) + 2` assigns `a` to `2` and returns `4`. This only works for variable assignment. \ No newline at end of file diff --git a/TODO.md b/TODO.md index e498dcd..36dd696 100644 --- a/TODO.md +++ b/TODO.md @@ -3,7 +3,6 @@ - list and delete variables - Re-evaluate variables (a = q + 2, q = 3, a should evaluate to 5) - 2x^-1 as superscript - - Celsius and Farenheit