View Source Formulae    Kantox ❤ OSS  Test  Dialyzer

Nifty precompiled formulae handling

Installation

def deps do
  [{:formulae, "~> 0.5"}]
end

Using

iex|1  f = Formulae.compile("rem(a, 5) - b == 0")
#ℱ<[
  ast: "rem(a, 5) - b == 0",
  eval: &:"Elixir.Formulae.rem(a, 5) - b == 0".eval/1,
  formula: "rem(a, 5) - b == 0",
  guard: nil,
  module: :"Elixir.Formulae.rem(a, 5) - b == 0",
  variables: [:a, :b]
]>
iex|2  f.eval.(a: 11, b: 1)
true
iex|3  f.variables
[:a, :b]
iex|4  f.module
:"Elixir.Formulae.rem(a, 5) - b == 0"

Changelog

  • 0.10.0
  • 0.9.0
    • options: [eval: :guard, alias: SomeModName]
    • fixes for modern Elixir
    • optimizations in module generation
    • benchmarks
  • 0.8.0 — generate combinators functions in Formulae module

Documentation