Walter Leibbrandt 29bee0bfb1 Initial commit
2021-06-05 18:40:25 +02:00

958 lines
18 KiB
Lua

local _2afile_2a = "fnl/aniseed/core.fnl"
local _0_
do
local name_0_ = "conjure-macroexpand.aniseed.core"
local module_0_
do
local x_0_ = package.loaded[name_0_]
if ("table" == type(x_0_)) then
module_0_ = x_0_
else
module_0_ = {}
end
end
module_0_["aniseed/module"] = name_0_
module_0_["aniseed/locals"] = ((module_0_)["aniseed/locals"] or {})
do end (module_0_)["aniseed/local-fns"] = ((module_0_)["aniseed/local-fns"] or {})
do end (package.loaded)[name_0_] = module_0_
_0_ = module_0_
end
local autoload
local function _1_(...)
return (require("conjure-macroexpand.aniseed.autoload")).autoload(...)
end
autoload = _1_
local function _2_(...)
local ok_3f_0_, val_0_ = nil, nil
local function _2_()
return {autoload("conjure-macroexpand.aniseed.view")}
end
ok_3f_0_, val_0_ = pcall(_2_)
if ok_3f_0_ then
_0_["aniseed/local-fns"] = {autoload = {view = "conjure-macroexpand.aniseed.view"}}
return val_0_
else
return print(val_0_)
end
end
local _local_0_ = _2_(...)
local view = _local_0_[1]
local _2amodule_2a = _0_
local _2amodule_name_2a = "conjure-macroexpand.aniseed.core"
do local _ = ({nil, _0_, nil, {{}, nil, nil, nil}})[2] end
math.randomseed(os.time())
local rand
do
local v_0_
do
local v_0_0
local function rand0(n)
return (math.random() * (n or 1))
end
v_0_0 = rand0
_0_["rand"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["rand"] = v_0_
rand = v_0_
end
local string_3f
do
local v_0_
do
local v_0_0
local function string_3f0(x)
return ("string" == type(x))
end
v_0_0 = string_3f0
_0_["string?"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["string?"] = v_0_
string_3f = v_0_
end
local nil_3f
do
local v_0_
do
local v_0_0
local function nil_3f0(x)
return (nil == x)
end
v_0_0 = nil_3f0
_0_["nil?"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["nil?"] = v_0_
nil_3f = v_0_
end
local table_3f
do
local v_0_
do
local v_0_0
local function table_3f0(x)
return ("table" == type(x))
end
v_0_0 = table_3f0
_0_["table?"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["table?"] = v_0_
table_3f = v_0_
end
local count
do
local v_0_
do
local v_0_0
local function count0(xs)
if table_3f(xs) then
return table.maxn(xs)
elseif not xs then
return 0
else
return #xs
end
end
v_0_0 = count0
_0_["count"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["count"] = v_0_
count = v_0_
end
local empty_3f
do
local v_0_
do
local v_0_0
local function empty_3f0(xs)
return (0 == count(xs))
end
v_0_0 = empty_3f0
_0_["empty?"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["empty?"] = v_0_
empty_3f = v_0_
end
local first
do
local v_0_
do
local v_0_0
local function first0(xs)
if xs then
return xs[1]
end
end
v_0_0 = first0
_0_["first"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["first"] = v_0_
first = v_0_
end
local second
do
local v_0_
do
local v_0_0
local function second0(xs)
if xs then
return xs[2]
end
end
v_0_0 = second0
_0_["second"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["second"] = v_0_
second = v_0_
end
local last
do
local v_0_
do
local v_0_0
local function last0(xs)
if xs then
return xs[count(xs)]
end
end
v_0_0 = last0
_0_["last"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["last"] = v_0_
last = v_0_
end
local inc
do
local v_0_
do
local v_0_0
local function inc0(n)
return (n + 1)
end
v_0_0 = inc0
_0_["inc"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["inc"] = v_0_
inc = v_0_
end
local dec
do
local v_0_
do
local v_0_0
local function dec0(n)
return (n - 1)
end
v_0_0 = dec0
_0_["dec"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["dec"] = v_0_
dec = v_0_
end
local even_3f
do
local v_0_
do
local v_0_0
local function even_3f0(n)
return ((n % 2) == 0)
end
v_0_0 = even_3f0
_0_["even?"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["even?"] = v_0_
even_3f = v_0_
end
local odd_3f
do
local v_0_
do
local v_0_0
local function odd_3f0(n)
return not even_3f(n)
end
v_0_0 = odd_3f0
_0_["odd?"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["odd?"] = v_0_
odd_3f = v_0_
end
local keys
do
local v_0_
do
local v_0_0
local function keys0(t)
local result = {}
if t then
for k, _ in pairs(t) do
table.insert(result, k)
end
end
return result
end
v_0_0 = keys0
_0_["keys"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["keys"] = v_0_
keys = v_0_
end
local vals
do
local v_0_
do
local v_0_0
local function vals0(t)
local result = {}
if t then
for _, v in pairs(t) do
table.insert(result, v)
end
end
return result
end
v_0_0 = vals0
_0_["vals"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["vals"] = v_0_
vals = v_0_
end
local kv_pairs
do
local v_0_
do
local v_0_0
local function kv_pairs0(t)
local result = {}
if t then
for k, v in pairs(t) do
table.insert(result, {k, v})
end
end
return result
end
v_0_0 = kv_pairs0
_0_["kv-pairs"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["kv-pairs"] = v_0_
kv_pairs = v_0_
end
local run_21
do
local v_0_
do
local v_0_0
local function run_210(f, xs)
if xs then
local nxs = count(xs)
if (nxs > 0) then
for i = 1, nxs do
f(xs[i])
end
return nil
end
end
end
v_0_0 = run_210
_0_["run!"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["run!"] = v_0_
run_21 = v_0_
end
local filter
do
local v_0_
do
local v_0_0
local function filter0(f, xs)
local result = {}
local function _3_(x)
if f(x) then
return table.insert(result, x)
end
end
run_21(_3_, xs)
return result
end
v_0_0 = filter0
_0_["filter"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["filter"] = v_0_
filter = v_0_
end
local map
do
local v_0_
do
local v_0_0
local function map0(f, xs)
local result = {}
local function _3_(x)
local mapped = f(x)
local function _4_()
if (0 == select("#", mapped)) then
return nil
else
return mapped
end
end
return table.insert(result, _4_())
end
run_21(_3_, xs)
return result
end
v_0_0 = map0
_0_["map"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["map"] = v_0_
map = v_0_
end
local map_indexed
do
local v_0_
do
local v_0_0
local function map_indexed0(f, xs)
return map(f, kv_pairs(xs))
end
v_0_0 = map_indexed0
_0_["map-indexed"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["map-indexed"] = v_0_
map_indexed = v_0_
end
local identity
do
local v_0_
do
local v_0_0
local function identity0(x)
return x
end
v_0_0 = identity0
_0_["identity"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["identity"] = v_0_
identity = v_0_
end
local reduce
do
local v_0_
do
local v_0_0
local function reduce0(f, init, xs)
local result = init
local function _3_(x)
result = f(result, x)
return nil
end
run_21(_3_, xs)
return result
end
v_0_0 = reduce0
_0_["reduce"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["reduce"] = v_0_
reduce = v_0_
end
local some
do
local v_0_
do
local v_0_0
local function some0(f, xs)
local result = nil
local n = 1
while (nil_3f(result) and (n <= count(xs))) do
local candidate = f(xs[n])
if candidate then
result = candidate
end
n = inc(n)
end
return result
end
v_0_0 = some0
_0_["some"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["some"] = v_0_
some = v_0_
end
local butlast
do
local v_0_
do
local v_0_0
local function butlast0(xs)
local total = count(xs)
local function _4_(_3_)
local _arg_0_ = _3_
local n = _arg_0_[1]
local v = _arg_0_[2]
return (n ~= total)
end
return map(second, filter(_4_, kv_pairs(xs)))
end
v_0_0 = butlast0
_0_["butlast"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["butlast"] = v_0_
butlast = v_0_
end
local rest
do
local v_0_
do
local v_0_0
local function rest0(xs)
local function _4_(_3_)
local _arg_0_ = _3_
local n = _arg_0_[1]
local v = _arg_0_[2]
return (n ~= 1)
end
return map(second, filter(_4_, kv_pairs(xs)))
end
v_0_0 = rest0
_0_["rest"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["rest"] = v_0_
rest = v_0_
end
local concat
do
local v_0_
do
local v_0_0
local function concat0(...)
local result = {}
local function _3_(xs)
local function _4_(x)
return table.insert(result, x)
end
return run_21(_4_, xs)
end
run_21(_3_, {...})
return result
end
v_0_0 = concat0
_0_["concat"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["concat"] = v_0_
concat = v_0_
end
local mapcat
do
local v_0_
do
local v_0_0
local function mapcat0(f, xs)
return concat(unpack(map(f, xs)))
end
v_0_0 = mapcat0
_0_["mapcat"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["mapcat"] = v_0_
mapcat = v_0_
end
local pr_str
do
local v_0_
do
local v_0_0
local function pr_str0(...)
local s
local function _3_(x)
return view.serialise(x, {["one-line"] = true})
end
s = table.concat(map(_3_, {...}), " ")
if (nil_3f(s) or ("" == s)) then
return "nil"
else
return s
end
end
v_0_0 = pr_str0
_0_["pr-str"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["pr-str"] = v_0_
pr_str = v_0_
end
local str
do
local v_0_
do
local v_0_0
local function str0(...)
local function _3_(acc, s)
return (acc .. s)
end
local function _4_(s)
if string_3f(s) then
return s
else
return pr_str(s)
end
end
return reduce(_3_, "", map(_4_, {...}))
end
v_0_0 = str0
_0_["str"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["str"] = v_0_
str = v_0_
end
local println
do
local v_0_
do
local v_0_0
local function println0(...)
local function _3_(acc, s)
return (acc .. s)
end
local function _5_(_4_)
local _arg_0_ = _4_
local i = _arg_0_[1]
local s = _arg_0_[2]
if (1 == i) then
return s
else
return (" " .. s)
end
end
local function _6_(s)
if string_3f(s) then
return s
else
return pr_str(s)
end
end
return print(reduce(_3_, "", map_indexed(_5_, map(_6_, {...}))))
end
v_0_0 = println0
_0_["println"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["println"] = v_0_
println = v_0_
end
local pr
do
local v_0_
do
local v_0_0
local function pr0(...)
return println(pr_str(...))
end
v_0_0 = pr0
_0_["pr"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["pr"] = v_0_
pr = v_0_
end
local slurp
do
local v_0_
do
local v_0_0
local function slurp0(path, silent_3f)
local _3_, _4_ = io.open(path, "r")
if ((_3_ == nil) and (nil ~= _4_)) then
local msg = _4_
return nil
elseif (nil ~= _3_) then
local f = _3_
local content = f:read("*all")
f:close()
return content
end
end
v_0_0 = slurp0
_0_["slurp"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["slurp"] = v_0_
slurp = v_0_
end
local spit
do
local v_0_
do
local v_0_0
local function spit0(path, content)
local _3_, _4_ = io.open(path, "w")
if ((_3_ == nil) and (nil ~= _4_)) then
local msg = _4_
return error(("Could not open file: " .. msg))
elseif (nil ~= _3_) then
local f = _3_
f:write(content)
f:close()
return nil
end
end
v_0_0 = spit0
_0_["spit"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["spit"] = v_0_
spit = v_0_
end
local merge_21
do
local v_0_
do
local v_0_0
local function merge_210(base, ...)
local function _3_(acc, m)
if m then
for k, v in pairs(m) do
acc[k] = v
end
end
return acc
end
return reduce(_3_, (base or {}), {...})
end
v_0_0 = merge_210
_0_["merge!"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["merge!"] = v_0_
merge_21 = v_0_
end
local merge
do
local v_0_
do
local v_0_0
local function merge0(...)
return merge_21({}, ...)
end
v_0_0 = merge0
_0_["merge"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["merge"] = v_0_
merge = v_0_
end
local select_keys
do
local v_0_
do
local v_0_0
local function select_keys0(t, ks)
if (t and ks) then
local function _3_(acc, k)
if k then
acc[k] = t[k]
end
return acc
end
return reduce(_3_, {}, ks)
else
return {}
end
end
v_0_0 = select_keys0
_0_["select-keys"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["select-keys"] = v_0_
select_keys = v_0_
end
local get
do
local v_0_
do
local v_0_0
local function get0(t, k, d)
local res
if table_3f(t) then
local val = t[k]
if not nil_3f(val) then
res = val
else
res = nil
end
else
res = nil
end
if nil_3f(res) then
return d
else
return res
end
end
v_0_0 = get0
_0_["get"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["get"] = v_0_
get = v_0_
end
local get_in
do
local v_0_
do
local v_0_0
local function get_in0(t, ks, d)
local res
local function _3_(acc, k)
if table_3f(acc) then
return get(acc, k)
end
end
res = reduce(_3_, t, ks)
if nil_3f(res) then
return d
else
return res
end
end
v_0_0 = get_in0
_0_["get-in"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["get-in"] = v_0_
get_in = v_0_
end
local assoc
do
local v_0_
do
local v_0_0
local function assoc0(t, ...)
local _let_0_ = {...}
local k = _let_0_[1]
local v = _let_0_[2]
local xs = {(table.unpack or unpack)(_let_0_, 3)}
local rem = count(xs)
local t0 = (t or {})
if odd_3f(rem) then
error("assoc expects even number of arguments after table, found odd number")
end
if not nil_3f(k) then
t0[k] = v
end
if (rem > 0) then
assoc0(t0, unpack(xs))
end
return t0
end
v_0_0 = assoc0
_0_["assoc"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["assoc"] = v_0_
assoc = v_0_
end
local assoc_in
do
local v_0_
do
local v_0_0
local function assoc_in0(t, ks, v)
local path = butlast(ks)
local final = last(ks)
local t0 = (t or {})
local function _3_(acc, k)
local step = get(acc, k)
if nil_3f(step) then
return get(assoc(acc, k, {}), k)
else
return step
end
end
assoc(reduce(_3_, t0, path), final, v)
return t0
end
v_0_0 = assoc_in0
_0_["assoc-in"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["assoc-in"] = v_0_
assoc_in = v_0_
end
local update
do
local v_0_
do
local v_0_0
local function update0(t, k, f)
return assoc(t, k, f(get(t, k)))
end
v_0_0 = update0
_0_["update"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["update"] = v_0_
update = v_0_
end
local update_in
do
local v_0_
do
local v_0_0
local function update_in0(t, ks, f)
return assoc_in(t, ks, f(get_in(t, ks)))
end
v_0_0 = update_in0
_0_["update-in"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["update-in"] = v_0_
update_in = v_0_
end
local constantly
do
local v_0_
do
local v_0_0
local function constantly0(v)
local function _3_()
return v
end
return _3_
end
v_0_0 = constantly0
_0_["constantly"] = v_0_0
v_0_ = v_0_0
end
local t_0_ = (_0_)["aniseed/locals"]
t_0_["constantly"] = v_0_
constantly = v_0_
end
return nil