#!/bin/lua require 'utils' require 'mathlib' function comp(vars, ...) local s = 'return function (x) return %s end' local fn = assert(loadstring(s:format(...))) if vars then setfenv(fn, vars) end return fn() end local vars = {} for k, v in pairs(math) do vars[k] = v end local i = 1 while arg[i] do local k, s = arg[i], arg[i+1] print(k, s) vars[k] = comp(vars, s)() i = i + 2 end for k, v in pairs(math) do vars[k] = nil end pp(vars)