#! lua
--[[
The brace avoider.
LIST (f1) (x1) ... (fn) (xn) => { f1(x1); ... ; fn(xn); } 
--]]
local LIST
LIST = \ (x)
    local o = { }
    local f
    f = \ (y)
        if not y then => o end -- if
        local t = type (y)
        if t == "function" then
          => \ (z) => f (y (z)) end -- function
        end -- if
        if t == "string" or t == "table" then
           o[1 + #o] = y
           => f
        end -- if
        end -- function
    => f (x)
    end -- function
=> { LIST = LIST }

