Lists
From Bitfighter
Roberto Ierusalimschy's List module is available to all robot and levelgen scripts.
To use these functions, you must first include the line: require("list")
TODO: Explain these list functions
function test () local SIZE = 10000 -- create a list with elements 1..SIZE local l1 = List:new() for i=1,SIZE do l1:pushright(i) end -- creates a copy of l1 local l2 = l1:new() -- remove each individual item from left side of l2 and -- append to right side of l3 (preserving order) local l3 = List:new() while l2:length() > 0 do l3:pushright(l2:popleft()) end -- remove each individual item from right side of l3 and -- append to right side of l2 (reversing list) while l3:length() > 0 do l2:pushright(l3:popright()) end -- reverse l1 in place l1:reverse() -- compare Li1 and Li2 for equality -- and return length of the list if not l1:equal(l2) then return nil else return l1:length() end end N = tonumber((arg and arg[1])) or 1 for i=1, N do result = test() end print(result)