filediff-0.1.0.2: Diffing and patching 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 lists. dels represents the indices at which to delete, and adds 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) 
Generic (SeqDiff a) 
(Eq a, MemoTable a) => Monoid (SeqDiff a) 
Default (SeqDiff a) 
type Rep (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"