It is important to find your way through the labyrint of Lisp numbers --
Both Scheme R5RS ( and > ) and Common Lisp should be "full numeric tower" , however most of the Schemes are not (p.e; BigLoo, Chicken , Stalin aren't (and many more ).
so : (let ( (a 1) (b 1.0)) ) means a is integer and b a floating point number
in CL the integer can be a bignumber ; to force it into a regular integer (for reason of speed ) , one can say in CL
(declare (type fixnum a) (type real b) ) -- also forcing b into a real number and not a complex number.
both languages should have fractions (/ 4) means 1/4 , to convert it (in CL) use (float (/ 4)) -> 0.25 in Scheme one does
(exact->inexact (/ 4)) -> 0.25
Furthermore the "top" schemes have fx* , fx+, fx- etc... iirc they are calle monodiadic
operators ? , they are restricted to two arguments ... (once again to gain higher execution speed of the code)
NewLisp
----------
uses separate operators + , - , * , / for integers and big numbers and add , sub , mul , div for floats or forcing into floats.
(be careful for (inc ) and (++ ) etc , too.
The bignumbers are invoked by adding an L at the tail 0L is a bignumber thus.
(+ 1 0L) makes 1L (look in the documentation for the correct operators p.e. (gcd ) does not work on big numbers;
etc etc ...
best Rob (some things may be very application specific )
-- running everything in 32 bit ---- (sadly)
John, glad to read you could compile it , imho NewLISP is au pair with languages as Perl and Python --
http://www.newlisp.org/CodePatterns.html -- the FFI is superb , for string and integer arguments and results , you even do not have to declare those , it is possible to set up structures in Lisp, reading C structs .... etc ...
Hi, Mike ... Aero ,
ok -- unaware once again -- for myself the antique look of Japi is not important , probably for many others it is