Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

Lua and Elixir

luaelixir.livemd

Lua and Elixir

Mix.install([
  {:lua, "~> 0.2.1"}
])

Example

defmodule MyAPI do
  use Lua.API
      
  deflua double(v), do: 2 * v
end
import Lua, only: [sigil_LUA: 2]
lua = Lua.new() |> Lua.load_api(MyAPI)
{[10], _} = Lua.eval!(lua, ~LUA[return double(5)])
Lua.eval!(lua, ~LUA[return double(5)])

Factorial in Lua

code = ~LUA"""
function factorial(n)
    if n == 0 then
        return 1
    else
        return n * factorial(n - 1)
    end
end

return factorial(10)
"""
Lua.eval!(code)