Hi Doug,

> I can then doPrint() on what doRead() returns - although I don't see
> the customary parentheses around the list I hand that to doEval().

Calling the high-level Lisp function 'doEval' is not a good idea,
because it first evaluates its arguments, which is not what is needed
here.

The same is the case for 'doRead', but it doesn't do much harm if you
just pass it NIL (i.e. no arguments). And also for 'doPrint': If you
pass it something other than a number, if will print not that item but
its value. Better just call 'print()' for debugging.

So instead of calling 'doEval', you could do

   any res;
   cell c1;

   Push(c1, doRead(Nil));
   x = EVAL(data(c1));
   drop(c1);
   return x;


> doEval() returns a value (an "any" pointer, which when cast to a long is 6 
> which seems odd). 

'6' is a valid 'any', the number '1':

         num      xxxxxx10
          2       00000110

Cheers,
- Alex
-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to