diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:54:35 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:54:35 +0000 |
| commit | e9e80fc389365e24d4300d7d5390c7d833a96c50 (patch) | |
| tree | f0b58473adaa670bd8fc52ada419d8cad470ee03 /old-examples/uusisuomi/MyDiff.hs | |
| parent | b96b36f43de3e2f8b58d5f539daa6f6d47f25870 (diff) | |
changed names of resource-1.3; added a note on homepage on release
Diffstat (limited to 'old-examples/uusisuomi/MyDiff.hs')
| -rw-r--r-- | old-examples/uusisuomi/MyDiff.hs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/old-examples/uusisuomi/MyDiff.hs b/old-examples/uusisuomi/MyDiff.hs new file mode 100644 index 000000000..f695978aa --- /dev/null +++ b/old-examples/uusisuomi/MyDiff.hs @@ -0,0 +1,25 @@ +module Main where + +import System + +-- compare lines word-by-word, returning difference pairs with their positions + +main = do + x:y:_ <- getArgs + old <- readFile x >>= return . lines + new <- readFile y >>= return . lines + mapM_ comp (zip old new) + +comp (ws1,ws2) = do + let diffs = [form ++ ":" ++ w1 ++ "-" ++ w2 | + (form,(w1,w2)) <- zip forms (zip (words ws1) (words ws2)), diff w2 w1] + putStr $ unwords diffs + if null diffs then return () else putStrLn "" + +forms = map show [1..] + +diff w ws = notElem w (chop ws) where + chop cs = case span (/='/') cs of + ([],_) -> [] + (w1,ww) -> w1:chop (drop 1 ww) + |
