The enumerate method in Magik Programming

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

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) —

推荐阅读:
经常食用新鲜西红柿的10大益处  在感冒发烧时应该如何安排饮食  十种常见食物搭配吃得营养又健康  日常食物怎样搭配吃出加倍营养?  秋冬季这样吃南瓜可防治便秘胃痛  三种豆子一起吃营养效果最好  红糖对女人健康有三大养生功效  南瓜的养生功效:温润脾胃护心助眠  可以用豆浆替代牛奶来补钙吗?  早餐吃鸡蛋7大好处及快速烹调法 
评论列表
添加评论