The enumerate method in Magik Programming

  • 时间:2020-09-16 12:48:17
  • 分类:网络文摘
  • 阅读:114 次

The Magik programming does not have an inherent enumerate method like Python, however, it would be trivial to make one:

_global enumerate << _iter [email protected](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) —

推荐阅读:
Why Social Media is Crucial to Your Marketing Efforts  The Difference Between Gillette & Nike Ads  Result-Driven Trends in 2019 to Get Backlinks from Quality Websi  The Contiguous Binary Array with Equal Numbers of Ones and Zeros  Microbit Programming: Showing a Running Pixel on the LED  How to Print Immutable Linked List in Reverse using Recursion or  The Most Useful Tools for Reverse Phone Lookup  How to Solve the WIFI (Wireless Networks) Intermittency Issues?  How to Reverse a Linked List in Javascript?  Bash Function to Check if a Kubernetes Pod Name is Valid 
评论列表
添加评论