[Push] runpush operation

Rud Merriam k5rud at arrl.net
Sat Nov 1 17:33:22 EST 2003


I am not understanding something about either the DO / DO* operators or
runpush. In the expression

        (runpush '(integer.dup integer.+) '(5))

I evaluate it as:

        code.push("(integer.dup integer.+)") code.push("(5)") <while code
!empty>  code.do

The result is the first DO pushes the 5 on the integer stack and the second
DO does the dup and + operators. That leaves the code stack empty.

I just looked at the LISP at the URL you posted in your Push2 message last
month. My LISP is very rusty but I think I got it. Runpush pushes its first
argument on the code stack and the second argument values on their
appropriate stacks.

If that is correct then it is equivalent to:

        code.push("(integer.dup integer.+)") code.push("(5)") code.do
code.do

Rud Merriam
K5RUD





More information about the Push mailing list