in newLISP the outcome of the arithmetik operation is defined by the operator rather than by the operand. +,/,*,/ will convert their arguments to integers, before the operator gets applied, same is true for add,sub,mul and div the other way around.
newLISP was made with embedded systems applications in mind, so this was the right way to go (to have two sets of operators for integers and floats). In many scripting environments it may be better to just redefine +,-,*,/ as floating point operators with 'constant'. I will look into the documentation to see if these issues can be made clearer.
So now I know that newlisp operators works that way, I only have to keep an eye on it, when porting code to choose the right replacement for the universal operators from the other Lisp.
Thanks for the info.
Can you explain a bit about embedded systems applications?
Could there be a version on Pocket PC2003 in the future?
'embedded' applications means, applocations embedded into some microprocessor driven device: from toaster, to printer to cell phone to car etc.. It's really the biggest field today for software. Probably 95% of all computing power sits in some device, which is not your general purpose computer on the desk or in the server room, but a CPU controlling some other device.
In these applications there is always a lot of dealing with hardware directly, setting bits at certain memory locations or writing to device ports directly.
Most of the time these devices have no floating point support at all and there is heavy dealing with integers, memory addresses, bit masks etc. That is while you need a clear seperation between the integer and floating point domain.