GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Diffing_with_keys(3) OCaml library Diffing_with_keys(3)

Diffing_with_keys - When diffing lists where each element has a distinct key, we can refine the diffing patch by introducing two composite edit moves: swaps and moves.

Module Diffing_with_keys

Module Diffing_with_keys
: sig end

When diffing lists where each element has a distinct key, we can refine the diffing patch by introducing two composite edit moves: swaps and moves.

Swap s exchange the position of two elements. Swap cost is set to 2 * change - epsilon . Move s change the position of one element. Move cost is set to delete + addition - epsilon .

When the cost delete + addition is greater than change and with those specific weights, the optimal patch with Swap s and Move s can be computed directly and cheaply from the original optimal patch.

type 'a with_pos = {
pos : int ;
data : 'a ;
}

val with_pos : 'a list -> 'a with_pos list

type ('l, 'r, 'diff) mismatch =
| Name of {
pos : int ;
got : string ;
expected : string ;
types_match : bool ;
}
| Type of {
pos : int ;
got : 'l ;
expected : 'r ;
reason : 'diff ;
}

type ('l, 'r, 'diff) change =
| Change of ('l, 'r, 'diff) mismatch
| Swap of {
pos : int * int ;
first : string ;
last : string ;
}
| Move of {
name : string ;
got : int ;
expected : int ;
}
| Insert of {
pos : int ;
insert : 'r ;
}
| Delete of {
pos : int ;
delete : 'l ;
}

This specialized version of changes introduces two composite changes: Move and Swap

val prefix : Format.formatter -> ('l, 'r, 'diff) change -> unit

module Define : functor (D : sig end) -> sig end

2025-07-03 OCamldoc

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.