From: Ethan A M. <merritt@u.washington.edu> - 2008-10-26 18:15:58
|
On Sunday 26 October 2008, Juergen Wieferink wrote: > In my opinion it's more natural to put the > 'for' right before the 'set' command: > > for [i=1:10] set xtics add ("label" POSITION) That is a logical syntax, but I would wager that users will immediately assume that for [i=1:N] .... can be placed in front of any command (not just "set"). In fact maybe it _should_ apply to any command, but as of now it doesn't. Furthermore, there is a logical difference between the two forms, as easily seen for "plot", because for [i=1:N] plot ... would create N separate plots, whereas plot [i=1:N] ... creates 1 plot with N lines on it. I now remember that "set for [i=1:N] xtics <foo>" makes this same distinction. Because the iteration is _inside_ the set command, it is not required to explicitly say "add". So the two commands below (2nd is only hypothetical) are equivalent: set for [i=1:N] xtics (label(i), i) set xtics (); for [i=1:N] set xtics add (label(i), i) The second (hypothetical) form requires both that you manually clear the list initially and that subsequent list entries contain an explicit "add" keyword. The first form (currently implemented) does both for you automatically. Anyhow, getting back to the original question, set for [i=1:N] cntrparam levels discrete <foo> should act analogously to the first form of the iterated 'set xtics' above. It should all by itself do the initial clear and subsequent implicit "add". -- Ethan A Merritt |