www.delorie.com/gnu/docs/kawa/kawa_34.html search
Kawa, the Java-based Scheme system

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

## 7.6 Quantities

As a super-class of numbers, Kawa also provides quantities. A quantity is a product of a unit and a pure number. The number part can be an arbitrary complex number. The unit is a product of integer powers of base units, such as meter or second.

Kawa quantities are a generalization of the quantities in DSSSL, which only has length-derived quantities.

The precise syntax of quantity literals may change, but some examples are `10pt` (10 points), `5s` (5 seconds), and `4cm^2` (4 square centimeters).

Function: quantity? object
True iff object is a quantity. Note that all numbers are quantities, but not the other way round. Currently, there are no quantities that re not numbers. To distinguish a plain unit-less number from a quantity, you can use `complex?`.

Function: quantity->number q
Returns the pure number part of the quantity q, relative to primitive (base) units. If q is a number, returns q. If q is a unit, yields the magitude of q relative to base units.

Function: quantity->unit q
Returns the unit of the quantity q. If q is a number, returns the empty unit.

Function: make-quantity x unit
Returns the product of x (a pure number) and unit. You can specify a string instead of unit, such as `"cm"` or `"s"` (seconds).

Syntax: define-base-unit unit-name dimension
Define unit-name as a base (primitive) unit, which is used to measure along the specified dimension.
 ```(define-base-unit dollar "Money") ```

Syntax: define-unit unit-name expression
Define unit-name as a unit (that can be used in literals) equal to the quantity expression.
 ```(define-unit cent 0.01dollar) ```

 [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

 webmaster delorie software   privacy Copyright © 2003   by The Free Software Foundation Updated Jun 2003