package fmlib_std

  1. Overview
  2. Docs

Description

Some small wrappers around ocamls stdlib modules to facilitate more functional programming. E.g. the module 'Option' and 'Result' support the 'let*' operator. The module 'Array' has a 'push' operation to append functionally elements at the end.

Besides some wrapper around Stdlib modules it has the additional modules:

  • Deque: A double ended queue with efficient pushing of elements from the front and the rear end and efficient popping of elements from the front end.

  • Btree: Finite sets and maps based on B trees. B trees have better cache efficiency and locality than AVL or Redblack trees.

Published: 01 Feb 2023

README

Fmlib - Functional Library with Managed Effects for Ocaml

Overview

Fmlib is a functional library which has components for

  • Standard Data Structures (B trees, ... ): Fmlib_std

  • Pretty Printing: Fmlib_pretty

  • Parsing: Fmlib_parse

  • Access to the browser and nodejs: Fmlib_js.

API Documentation

Design Documentation: Some designs and the corresponding algorithms are documented separately to ensure correctness of the corresponding designs and algorithms. The design documention is not neccessary to understand the usage of the library from a user's perspective. The user's perspective is documented in the API.

Installation

It is best to install the libraries via the ocaml package manager opam.

opam install fmlib_std
opam install fmlib_pretty
opam install fmlib_parse
opam install fmlib_js

Usage with dune

A program foo which uses e.g. the library fmlib_std can be e.g. compiled by dune with the dune file

(executable
    (name foo)
    (libraries
        fmlib_std
        ...
    )
)

Dependencies (3)

  1. ppx_inline_test >= "v0.13.0"
  2. dune >= "1.10"
  3. ocaml >= "4.08.0"

Dev Dependencies (1)

  1. odoc with-doc

Used by (4)

  1. fmlib = "0.5.2"
  2. fmlib_js = "0.5.2"
  3. fmlib_parse = "0.5.2"
  4. fmlib_pretty = "0.5.2"

Conflicts

None