The enumerate method in Magik Programming
- 时间:2020-09-16 12:48:17
 - 分类:网络文摘
 - 阅读:92 次
 
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) —
推荐阅读:数学题:财务室会计结账时,发现账面上少了890.1元钱 数学题:一个玻璃瓶内原有盐是水的1/11 数学题:把圆柱平均分成若干份后拼成一个长方体 奥数题:甲乙两地中间有一座山岭 奥数题:一份工作按计划的时间算 简便计算题:1997÷(1997+1997/1998)+(1/1999) 数学题:在比例尺1:5000的图纸上 2014年是平年还是闰年 数学题:在11次红灯变绿灯之间的黄灯亮起中 奥数题:从这两堆煤中分别运走同样的吨数后
- 评论列表
 - 
				
 
- 添加评论