From 0cb055053f07c6f16e0980df910460ea9548f5ca Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Sun, 22 Mar 2009 12:37:56 +0000 Subject: util.set: Fix to make constructor work, and functions defined correctly --- util/set.lua | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'util') diff --git a/util/set.lua b/util/set.lua index 08361d03..67f3dcaa 100644 --- a/util/set.lua +++ b/util/set.lua @@ -1,3 +1,5 @@ +local ipairs, pairs = + ipairs, pairs; module "set" @@ -5,40 +7,44 @@ function new(list) local items = {}; local set = { items = items }; - function set:add(set, item) + function set:add(item) items[item] = true; end - function set:contains(set, item) - return items[item] + function set:contains(item) + return items[item]; end - function set:items(set) + function set:items() return items; end - function set:remove(set, item) + function set:remove(item) items[item] = nil; end - function set:add_list(set, list) + function set:add_list(list) for _, item in ipairs(list) do items[item] = true; end end - function set:include(set, otherset) + function set:include(otherset) for item in pairs(otherset) do items[item] = true; end end - function set:exclude(set, otherset) + function set:exclude(otherset) for item in pairs(otherset) do items[item] = nil; end end + if list then + set:add_list(list); + end + return set; end -- cgit v1.2.3