-- Ensure that that the element at i is in the right position, -- and return a closure which can be used for continuing the sort. local a = 'a b c' local b = '12345678' local x = 1.99e-07 local c = 'a b c' + 'a b c' local t = { a = 1, b = 2, c = 3, } if a ~= 'a' then local b = a end local e = {a = 1, b = 2} function aaa(a, b, c) -- comment 1 -- comment 2 1231 -- comment 1 123 123 123123 12 -- [[ comment 1 ]] --[[ muli comments ssss @asdasd sad ]] local a = -1 return a + b - c end local b = {a = 1, b = [[this is two space ; ]], c = 2} function quicksorter(i, vec, low, high) if low >= high then return quicksorter else -- low < high -- partition the vector and initialize the child closures local middle = partition(vec, low, high) local left, right = quicksorter -- Create the promise local function self(i, vec, low, high) if i < middle then left = left(i, vec, low, middle - 1) return self elseif i > middle then right = right(i, vec, middle + 1, high) return self end end -- Force the promise until i is in the right position return self(i, vec, low, high) end end function lazysort(vec, low, high) local sorter = quicksorter return function(i) sorter = sorter(i, vec, low, high) return vec[i] end end