#!/bin/lua require 'utils' require 'mathlib' function comp(vars, ...) local s = 'return function (x) return %s end' local fn = assert(loadstring(s:format(...))) setfenv(fn, vars) return fn() end local vars = {} local P = {} local i = 1 local num = true for k, v in pairs(math) do vars[k] = v end while arg[i] do local a = arg[i] if a:sub(1,1) == '-' then vars[a:sub(2)] = comp(vars, arg[i+1])() i = i + 1 else local n = comp(vars, arg[i])() push(P, n) end i = i + 1 end a, b, c = P[3], P[2], P[1] D = b^2 - 4*a*c if D > 0 then print((-b+sqrt(D))/(2*a)) print((-b-sqrt(D))/(2*a)) elseif D == 0 then print(-b/(2*a)) else print(-b/(2*a), sqrt(-D)/(2*a)) print(-b/(2*a), -sqrt(-D)/(2*a)) end