A functional Lua extension library.
Compatibility: Lua 5.1, 5.2, 5.3, and Luajit.
f.lua aims to be the most complete functional extension library for Lua, whilst remaining fundamentally Lua.
It's fast, safe, unsurprising and fully-featured, with let statements, string lambdas, and currying. Whether you miss LISP or Haskell whilst working with Lua, this should scratch your itch, without making Lua's VM come to a screeching halt.
You can either copy the f.lua file whever you want it, or install via luarocks:
luarocks install f.lua
A brief look:
local f = require "f"
f.car(f.cons(2, f.cons(1)))
> 2
f.cdr(f.cons(2, f.cons(1)))
> {1}
f.fn("(x, y) return x, y")(1, 2)
> {1, 2}
f.let({x = 12}, function()
print(x)
f.let({x = 24}, function()
print(x)
end)
end)
print(x)
> 12
> 24
> nil
Refer to the documentation for more.
Semantic versioning is used to guarantee certain things. Whatever you find in the documentation is guaranteed.
Any breaking changes will increment the first number.
Any new features will be introduced with an increment to the second number.
Any bug fixes or cosmetic changes will be introduced with an increment to the third number.
See LICENSE.