2013-02-03 16 views
5

Ben Lua yeniyim comprehensions ve Python gibi bir list tanımlamak için bazı kompakt yolu, Lua bir metatable vardır merak ediyorum:Lua dil: piton listesine benzer bir şey nasıl kullandıklarını

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

Her türlü örnek takdir edilecektir.

+2

LuaMacros gördüğüm sadece benzer bir şeydir [bu kullanarak kod üretme] (http://lua-users.org/wiki/ListComprehensions) . –

+1

lua stdlib bazı fonksiyonel programlama yardımcı programları sağlasa da, [filter] (https://github.com/rrthomas/lua-stdlib/blob/origin/src/base.lua) bu –

cevap

2

Lua Ancak hiçbir yerli liste

sahiptir @joachim belirttiği gibi, bunu başarmak için kullanabileceğiniz bazı kesmek vardır.

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

O doğuracak: Düz 5.2.x Lua çalışmıyor

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

Bildirimi comprehension söyledi. Bu Kalem fener Lua Kitaplıkları gerektirir: http://stevedonovan.github.com/Penlight/api/index.html

da kullanabilirsiniz MetaLua veya

+1

olanıdır. Temelde _native_ yoktur Bunu yapmanın yolu? –

+2

@UbuntuSilva Hayır –

+0

Doğru. Lua'nın yerel Liste Anlama özelliği yoktur. – ppaulojr

İlgili konular