ANN: Dogelog Runtime, Prolog to the Moon (2021)

alister alister.ware at ntlworld.com
Wed Sep 15 16:00:11 EDT 2021


On Wed, 15 Sep 2021 11:56:47 -0700, Mostowski Collapse wrote:

> What could be slow, repeatedly requesting the "args"
> field. Maybe I should do:
> 
> help = term.args i = 0 while i < len(help) - 1:
> ____mark_term(help[i])
> ____i += 1 term = help[i]
> 
No this construct is a common error in new python programmers
 the next progression they make is when they discover the range function
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
for x in range(len(list)):
	print (items[x])

but that is equally inefficient

the pythonic way is as previously suggested

for item in items:
    print(item)

then the management of the index is being handled by the python 
interpreter internally & is effectively machine code.
every time you increment your own pointer the interpreter has to process 
reading the next line, reading the variable , incrementing it & then 
using it. this is what makes your current code slow. 

 
if you ever find your self creating a variable purely to use as a pointer 
into a list then you are almost certainly taking the wrong approach.

 more usefull links
https://www.youtube.com/watch?v=zdJEYhA2AZQ






-- 
"Show me a good loser, and I'll show you a loser."
		-- Vince Lombardi, football coach


More information about the Python-list mailing list