[comp.sys.handhelds] HP-48 unit quirks

edp@jareth.enet.dec.com (Always mount a scratch monkey.) (03/27/90)

HP did a great job with the unit manipulations, but there are a couple of
quirks:

	Complex numbers and unit objects don't mix.

	UFACT doesn't handle prefixed units properly.  E.g., factoring
	1_m into a unit expression will factor out all the occurences
	of lengths, but factoring 1_mm will only factor one.

Also, there's a hack that may be useful with ^MATCH and vMATCH.  The level-1
input is a list of the form { pattern replacement condition }.  The condition
is apparently required to be an algebraic.  This can be generalied by calling
a program:

	Use a list of the form { pattern replacement 'name(arguments)' }.
	In the variable 'name', store a program of the form:
		<< -> arguments << program . . . >> >>.

For example, using the list:
	{ '&A*&B' 'SQ(&A)' 'E(&A,&B)' }
with the following program in 'E':
	<< -> X Y << X Y SAME >> >>
will provide a match that changes multiplication of any expression by itself
into the square of that expression.  I don't believe there is any way to
accomplish the same match using a strictly algebraic object as the condition.

Quirks aside, HP did a fantastic job on the HP-48.  I wish I'd kept a copy of
the suggestions I sent, because I'm having a hard time remembering any of
them that weren't implemented in the HP-48.  (Conversion to base units, unit
factoring, units in algebraics, step into a program, and last menu are some
that I can remember.)

The HP-48 has really loaded the keys.  It is a bit imposing at first, but
try using a 28 after a few days with the 48 -- the 48's functions feel rich
compared with the 28, which feels spartan by comparison.


				-- edp (Eric Postpischil)
				"Always mount a scratch monkey."

billw@hpcvra.CV.HP.COM (William C Wickes) (03/29/90)

	>Complex numbers and unit objects don't mix.
*Life is short and ROM is full.

	>UFACT doesn't handle prefixed units properly.  E.g., factoring
	>1_m into a unit expression will factor out all the occurences
	>of lengths, but factoring 1_mm will only factor one.

*I don't understand.  Can you give an example of what the 48 does and
what you expect it to do?