package coq-core

  1. Overview
  2. Docs
The Coq Proof Assistant -- Core Binaries and Tools

Install

Dune Dependency

Authors

Maintainers

Sources

coq-8.19.1.tar.gz
md5=13d2793fc6413aac5168822313e4864e
sha512=ec8379df34ba6e72bcf0218c66fef248b0e4c5c436fb3f2d7dd83a2c5f349dd0874a67484fcf9c0df3e5d5937d7ae2b2a79274725595b4b0065a381f70769b42

doc/coq-core.clib/Diff2/Make/index.html

Module Diff2.MakeSource

Functor building an implementation of the diff structure given a sequence type.

Parameters

module M : SeqType

Signature

Sourcetype t = M.t

The type of input sequence.

Sourcetype elem = M.elem

The type of the elements of result / input sequence.

Sourceval lcs : ?equal:(elem -> elem -> bool) -> t -> t -> elem common list

lcs ~equal seq1 seq2 computes the LCS (longest common sequence) of seq1 and seq2. Elements of seq1 and seq2 are compared with equal. equal defaults to Pervasives.(=).

Elements of lcs are `Common (pos1, pos2, e) where e is an element, pos1 is a position in seq1, and pos2 is a position in seq2.

Sourceval diff : ?equal:(elem -> elem -> bool) -> t -> t -> elem edit list

diff ~equal seq1 seq2 computes the diff of seq1 and seq2. Elements of seq1 and seq2 are compared with equal.

Elements only in seq1 are represented as `Removed (pos, e) where e is an element, and pos is a position in seq1; those only in seq2 are represented as `Added (pos, e) where e is an element, and pos is a position in seq2; those common in seq1 and seq2 are represented as `Common (pos1, pos2, e) where e is an element, pos1 is a position in seq1, and pos2 is a position in seq2.

Sourceval fold_left : ?equal:(elem -> elem -> bool) -> f:('a -> elem edit -> 'a) -> init:'a -> t -> t -> 'a

fold_left ~equal ~f ~init seq1 seq2 is same as diff ~equal seq1 seq2 |> ListLabels.fold_left ~f ~init, but does not create an intermediate list.

Sourceval iter : ?equal:(elem -> elem -> bool) -> f:(elem edit -> unit) -> t -> t -> unit

iter ~equal ~f seq1 seq2 is same as diff ~equal seq1 seq2 |> ListLabels.iter ~f, but does not create an intermediate list.

OCaml

Innovation. Community. Security.