Page 1 of 1

Request: dolist to work on arrays as well as lists

Posted: Fri Feb 27, 2015 12:35 pm
by TedWalther
Lutz, could you enable array support in dolist? I'm using 2.6.0; if this has been changed in later versions, disregard.

Edit:

And yes, I see the array-list function. Is there a technical reason why it is better to explicitly do an array conversion, rather than iterating over the array directly?

Re: Request: dolist to work on arrays as well as lists

Posted: Fri Feb 27, 2015 2:48 pm
by rickyboy
. . . rather than iterating over the array directly?
You can use `for` to iterate over an array directly. But I assume you know that already. Sorry. I don't know what you are trying to do, but I am curious. Good to see you, Ted.

Re: Request: dolist to work on arrays as well as lists

Posted: Fri Feb 27, 2015 3:31 pm
by Lutz
One could see an advantage of making dolist work on arrays in some cases, that you wouldn’t have to specify the max N for a dotimes, while or for loop and expressions somehow are simpler because no indexing takes place:

Code: Select all

(dolist (e L)
	(println $idx ":" e))
versus:

Code: Select all

(dotimes (i (length L)) 
	(println i ":" (L i)))
It was simple to add with one line of code:
http://www.newlisp.org/downloads/develo ... nprogress/

Re: Request: dolist to work on arrays as well as lists

Posted: Fri Feb 27, 2015 3:36 pm
by rickyboy
Nice!

Re: Request: dolist to work on arrays as well as lists

Posted: Fri Feb 27, 2015 11:16 pm
by TedWalther
Thank you Lutz!

Rickyboy: principle of least surprise. I use an array for speed and efficiency, but I use them the way I use lists. In general, my brain gets tripped up if I can't use list functions on arrays, unless there is a specific reason why that list function is specific to lists but not to arrays. I saw the recent changes Lutz made to support arrays as first class lists and they really made the language conceptually nicer, requires less brain state from me.