2013-02-03 10 views
5

मैं लुआ के लिए नया हूँ और अगर वहाँ एक list परिभाषित करने के लिए कुछ कॉम्पैक्ट तरह से, लुआ में एक metatable हैं के रूप में हम अजगर में क्या मैं सोच रहा था:लुआ भाषा: कैसे अजगर सूची में कुछ इसी तरह का उपयोग comprehensions

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

किसी भी उदाहरण की सराहना की जाएगी।

+2

केवल समान बात मैंने देखा है है [इस का उपयोग कर कोड पीढ़ी] (http://lua-users.org/wiki/ListComprehensions) । –

+1

हालांकि लुआ stdlib कुछ कार्यात्मक प्रोग्रामिंग उपयोगिता प्रदान करता है, [फ़िल्टर] (https://github.com/rrthomas/lua-stdlib/blob/origin/src/base.lua) यह है –

उत्तर

2

लुआ कोई मूल सूची

है हालांकि के रूप में @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 लुआ में काम नहीं करता। यह Penlight लुआ पुस्तकालय की आवश्यकता है: http://stevedonovan.github.com/Penlight/api/index.html

तुम भी उपयोग कर सकते हैं MetaLua या LuaMacros

+1

मूल रूप से कोई _native_ नहीं है ऐसा करने का तरीका? –

+2

@UbuntuSilva No –

+0

यह सही है। लुआ की कोई मूल सूची समझ नहीं है – ppaulojr

संबंधित मुद्दे