package core_kernel

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Non-re-entrant memoization.

type ('a, 'b) fn = 'a -> 'b

A type definition to indicate that the expected use outputs a function

val general : ?hashable:'a Base.Hashable.t -> ?cache_size_bound:Base.Int.t -> ('a -> 'b) -> ('a, 'b) fn

Returns a memoized version of any function with a single argument. The default caching policy is to remember everything for the lifetime of the returned closure, but one may specify an upper bound on cache size. Whenever a cache entry must be forgotten in order to obey this bound, we pick the least-recently-used one.

Raises an exception if cache_size_bound is negative or zero.

Note: the input function must take _only_ one argument; to memoize a function with multiple arguments, pack them up in a tuple. See ../test/src/memo_argument.mlt for some examples.

val unit : (Base.Unit.t -> 'a) -> (Base.Unit.t, 'a) fn

efficient special case for argument type unit

val of_comparable : (module Comparable.S_plain with type t = 'a) -> ('a -> 'b) -> ('a, 'b) fn

Use a comparable instead of hashable type

OCaml

Innovation. Community. Security.