Kolbjørn Stuestøl wrote:
Continuing experimenting with LibreLogo.
Help for LibreLogo says that:
PRINT RANGE 3 10 3 ; print [3, 6, 9] (i.e. outputs 3, 6, 9.)
When I try it I get the output: "range (3 10 3)".
(Also "LABEL RANGE 3 10 3" and "TEXT RANGE 3 10 3" outputs "range (3 10
3)".)
I do not know Python programming. Is this the way Python handles lists?
Help call this a Python-like list generation.
It looks like the LibreLogo code is translated into Python code, and
what you're seeing is a change between Python 2.7 and Python 3. In
Python 2.7, range() returns a list of values, which would display as [3,
6, 9]. In Python 3, range() returns an iterable object, which will
return each value in turn as you iterate over it (it doesn't actually
create a list of all the values, so is more efficient for large ranges).
I expected that "PRINT RANGE 0 10 2" will output every second item in
the range: 0, 2, 4, 6, 8.
In Python, you should be able to get a list by using:
list(range(0, 10, 2))
I'm not sure how that would be done in Logo though; perhaps:
LIST RANGE 0 10 2
following the syntax you've shown in other examples.
On the other hand, the function
FOR :n IN RANGE 10 101 5 [
FORWARD :n LEFT 90
]
works as expected.
The "for" loop iterates over the iterator returned by range(), so
executes the loop for each number which would have been in the list.
Am I misunderstanding the Help for RANGE or is the Help incorrect?
Perhaps the help is out of date, or perhaps it depends which version of
Python you have. I don't know whether LibreLogo includes a Python
interpreter or uses one you install separately.
Hoping I am not the only one playing with LibreLogo :-)
Kolbjørn
--
To unsubscribe e-mail to: users+unsubscribe@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.