def execute (code) :
p = 0
while p len(code) :
func = code[p]
p += 1
newP = func(code,p)
if newP != None :
p = newP
I'm trying to work out what this does
code is a list of function addresses and numbers
What on earth is funct(code,p) doing???
My understanding so far is...
set p to 0
while p is less than the number of elements in list code keep doing what
follows...
set func to the first element in the list
increment the list index p
?
if newP is not null then set the list index p to ?
Can someone please explain in english what ? is
Thank you in anticipation
BTW the link for this stuff is
http://openbookproject.net/py4fun/forth/forth.html
to see the thing in action ie the download link is on the above page
Here's a listing of the output from this proc for the following forth input
i.e. I put some print statements in
but have no idea how
newP set to func( [function rPush at 0x0164F570, 4] , 1 ) i.e. 2
results in 2
and then
newP set to func( [function rAdd at 0x0164F130] , 1 ) i.e. None
results in None
???
Forth 5 4 + .
1st line of execute__
code = [function rPush at 0x0164F570, 5]
p = 0
1st line of while__
func = code[ 0 ] i.e. function rPush at 0x0164F570
incrementing p to 1
newP set to func( [function rPush at 0x0164F570, 5] , 1 ) i.e. 2
p = newP i.e. 2
1st line of execute__
code = [function rPush at 0x0164F570, 4]
p = 0
1st line of while__
func = code[ 0 ] i.e. function rPush at 0x0164F570
incrementing p to 1
newP set to func( [function rPush at 0x0164F570, 4] , 1 ) i.e. 2
p = newP i.e. 2
1st line of execute__
code = [function rAdd at 0x0164F130]
p = 0
1st line of while__
func = code[ 0 ] i.e. function rAdd at 0x0164F130
incrementing p to 1
newP set to func( [function rAdd at 0x0164F130] , 1 ) i.e. None
1st line of execute__
code = [function rDot at 0x0164F430]
p = 0
1st line of while__
func = code[ 0 ] i.e. function rDot at 0x0164F430
incrementing p to 1
13
newP set to func( [function rDot at 0x0164F430] , 1 ) i.e. 5
None
Forth
--
http://mail.python.org/mailman/listinfo/python-list