The Magik programming does not have an inherent enumerate method like Python, however, it would be trivial to make one:
_global enumerate << _iter _proc@enumerate(list)
_local i << 0
_for x _over list.fast_elements()
_loop
_loopbody({i, x}) # use simple-vector as a tuple
i +<< 1
_endloop
_endproc
Please note that the Magik does support the tuple, however, the tuple cannot be assigned to a tuple variable directly.
# tuple assignment works, x is 1 and y is 2
(x, y) << (1, 2)
However, this does not:
a_tuple << (1, 2)
# Can only have a tuple on the right hand side if there is one on the left hand side
We can use the simple vector or rope to act as a tuple anyway (Tuples are just immutable array/vectors)
Example usages:
_for a _over enumerate({'a', 'b', 'c'})
_loop
print(a)
_endloop
_global data << rope.new_with('a', 'b', 'c', 'd')
_for a _over enumerate(data)
_loop
print(a)
_endloop
And you should expect the following in the Magik console.
simple_vector(1,2):
1 0
2 "a"
simple_vector(1,2):
1 1
2 "b"
simple_vector(1,2):
1 2
2 "c"
simple_vector(1,2):
1 0
2 "a"
simple_vector(1,2):
1 1
2 "b"
simple_vector(1,2):
1 2
2 "c"
simple_vector(1,2):
1 3
2 "d"
True 0
For more details on Magik programming, visit Magik Wiki
Similarly, we can implement the enumerate() in Javascript: The enumerate function in Javascript
–EOF (The Ultimate Computing & Technology Blog) —
319 wordsLast Post: Add Two Numbers by Two Linked List (most significant digit comes first)
Next Post: Microbit Programming: How to Make a Catching-Apple Game by Using Sprites Objects?
hello and thanks a lot for your nice examples with Magik coding.
I tried to run them on Visual Studio Code
but a Magik compiler is missing.
Could you provide me
a compiler
for to execute your Magik codes ?
Thanks in advance
Hi, I think the Magik compiler is not open source, and you need to contact the GE Smallworld Sales team for a trial.