Warning: this is an htmlized version! The original is across this link, and the conversion rules are here.
```-- This file:
-- http://angg.twu.net/LATEX/2014-1-GA-P2-gab.lua
-- http://angg.twu.net/LATEX/2014-1-GA-P2-gab.lua.html
--  (find-angg        "LATEX/2014-1-GA-P2-gab.lua")
-- See: (find-angg    "LATEX/2014-1-GA-P2-gab.tex")
--

debug.setmetatable (print, {
__mul = function (f, g) return
function (...) return f(g(...)) end
end,
})

comma  = function (a, b) return      a..","..b      end
pcomma = function (a, b) return "("..a..","..b..")" end
seq = function (a, b, step)
local T = {}
for i=a,b,(step or 1) do table.insert(T, i) end
return T
end
map = function (f, A)
local B = {}
for i=1,#A do table.insert(B, f(A[i])) end
return B
end
seqpath = function(a, b, step, xyfromt)
local values = seq(a, b, step)
local pcoords = map(pcomma*xyfromt, values)
print(table.concat(pcoords, " -- "))
return table.concat(pcoords, " -- ")
end

-- (find-angg "LUA/lua50init.lua" "eval-and-L")
eval = function (str) return assert(loadstring(str))() end
expr = function (str) return eval("return "..str) end
L00 = function (args, body)
return string.format("function (%s) return %s end", args, body)
end
L0 = function (str)
str = str:gsub("^%s*(%S+)%s+->", "%1 ")
local args, body = str:match("^%s*(%S+)%s+(.*)\$")
return L00(args, body)
end
L = function (str) return expr(L0(str)) end

xyfromuv = L"u,v    2*u-2*v, 2+u+v"       -- (0,2) + u*(2,1) + v*(-2,1)
uvfromxy = L"x,y  x/4+y/2-1, -x/4+y/2-1"

cos = math.cos
sin = math.sin

xyfromh  = function (t) return xyfromuv(t, 1/t) end
xyfromp  = function (t) return xyfromuv(t, t*t) end
xyfrome  = function (t) return xyfromuv(cos(t), sin(t)) end

--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "2014-1-GA-P2-gab.lua"

= uvfromxy(0, 2)
= uvfromxy(2, 3)
= uvfromxy(-2, 3)
= xyfromuv(uvfromxy(0, 2))
= xyfromuv(uvfromxy(2, 3))
= xyfromuv(uvfromxy(-2, 3))

xyfromt = L"u,v u+v,u-v" * L"t t,1/t"
= xyfromt(10)
= seqpath(1, 2, 0.125, xyfromt)

--]]

-- Local Variables:
-- coding: raw-text-unix
-- End:
```