filediff-0.1.0.7: 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"