package fix

All checked builds pass
  1. Overview
  2. Docs
Algorithmic building blocks for memoization, recursion, and more

Install

dune-project
 Dependency

Authors

Maintainers

Sources

archive.tar.gz
md5=af7099d1cf24654bd379953b8e3d063f
sha512=147bde60a96191f5f0090842df37a12509d78cf6e9dda482fbd000f61215c3d12115854fc331ae39009f26948d6d527187adade160e7ab27a6c4f0d8b324490a

Description

Tags

algorithms

Added to opam-repository:

README

Fix: memoization and fixed points made easy

fix is an OCaml library that helps with various algorithmic constructions that involve memoization, recursion, and numbering.

Documentation

See the documentation of the latest released version.

Demos

A few demos are provided:

  • brz sets up a hash-consed representation of regular expressions and shows how to convert a regular expression to a deterministic finite-state automaton by Brzozowski's method. This demo exploits many of the submodules listed above, and is accompanied with a commentary.
  • cyk presents a CYK-style parsing algorithm as an instance of Fix.
  • cfg uses Fix to perform certain static analyses of a context-free grammar; this includes computing nullability information and FIRST sets.
  • fib defines Fibonacci's function in several different ways using the fixed-point combinators offered by Memoize and Fix.
  • hco sets up simple-minded hash-consed trees using HashCons.

Dependencies (2)

  1. dune >= "1.3"
  2. ocaml >= "4.03"

Dev Dependencies

None

Optional Dependencies

None

Conflicts

None

Build status

Results of building fix with each compiler on check.ci.ocaml.org, run of against opam-repository 7cdc698. All results for this package.

Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.

Version OCaml 4.11 OCaml 4.14 OCaml 5.2 OCaml 5.4 OCaml 5.5
20250919 (this version) good good good good good
  • good Package successfully built
  • partial One of the dependencies failed to build
  • bad Package failed to build
  • n/a Package is not available in this environment
  • internal Internal failure