filediff-0.1.0.0: Diff and patch module

Safe HaskellNone
LanguageHaskell2010

Filediff.Sequence

Contents

Description

Diffing algorithms (all exposed functions are pure)

Synopsis

data types

data SeqDiff a Source

Diff between two sequences. fst represents the indices | at which to delete, and snd represents the indices and | contents to add.

Constructors

SeqDiff 

Fields

dels :: [Int]
 
adds :: [(Int, a)]
 

Instances

Eq a => Eq (SeqDiff a) 
Show a => Show (SeqDiff a) 
(Eq a, MemoTable a) => Monoid (SeqDiff a) 

list operations

diffSequences :: forall a. (Eq a, MemoTable a) => [a] -> [a] -> SeqDiff a Source

returns (to delete, to add) | | > diffSequences "abcdefg" "wabxyze" | SeqDiff {dels = [2,3,5,6], adds = [(0,w),(3,x),(4,y),(5,z)]}

applySequenceDiff :: forall a. Eq a => SeqDiff a -> [a] -> [a] Source

diffSequences "abcdefg" "wabxyze"

| SeqDiff {dels = [2,3,5,6], adds = [(0,w),(3,x),(4,y),(5,z)]} | | > applySequenceDiff it "abcdefg" | "wabxyze"