Lua语言:如何使用类似于python列表推导的东西

时间:2013-02-03 12:15:03

标签: list functional-programming lua

我是Lua的新手,我想知道是否有一些紧凑的方法来定义Lua中的listmetatable,就像我们在Python中一样:

lis = [i for i in set if i>0]

非常感谢任何一个例子。

1 个答案:

答案 0 :(得分:2)

Lua没有本地列表

然而,正如@joachim指出的那样,你可以用它来实现它。

local comp = require 'comprehension' . new()
comp 'table(v,k for k,v in pairs(_1))' {[3]=5, [5]=7} 

它会产生:

{[5]=3, [7]=5}

请注意comprehension在普通的5.2.x Lua中不起作用。它需要Penlight Lua Libraries:http://stevedonovan.github.com/Penlight/api/index.html

您还可以使用MetaLuaLuaMacros