summaryrefslogtreecommitdiff
path: root/src/GF/Data/Operations.hs
diff options
context:
space:
mode:
authorpeb <unknown>2005-03-29 10:17:53 +0000
committerpeb <unknown>2005-03-29 10:17:53 +0000
commit67aa6e7a81d8d22ff8409ed59fab7bacde2312a6 (patch)
tree1759bd8e1b314e2b98ffb0a6116e2a1fb515908d /src/GF/Data/Operations.hs
parentccf6017b030fcefd5964979f1b6d55e722616ef7 (diff)
"Committed_by_peb"
Diffstat (limited to 'src/GF/Data/Operations.hs')
-rw-r--r--src/GF/Data/Operations.hs13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/GF/Data/Operations.hs b/src/GF/Data/Operations.hs
index 551b0f1aa..3f5600f93 100644
--- a/src/GF/Data/Operations.hs
+++ b/src/GF/Data/Operations.hs
@@ -5,9 +5,9 @@
-- Stability : (stable)
-- Portability : (portable)
--
--- > CVS $Date: 2005/03/14 23:45:36 $
--- > CVS $Author: krijo $
--- > CVS $Revision: 1.17 $
+-- > CVS $Date: 2005/03/29 11:17:56 $
+-- > CVS $Author: peb $
+-- > CVS $Revision: 1.18 $
--
-- some auxiliary GF operations. AR 19\/6\/1998 -- 6\/2\/2001
--
@@ -56,7 +56,7 @@ module Operations (-- * misc functions
sortByLongest, combinations, mkTextFile, initFilePath,
-- * topological sorting with test of cyclicity
- topoTest, topoSort,
+ topoTest, topoSort, cyclesIn,
-- * the generic fix point iterator
iterFix,
@@ -570,8 +570,7 @@ mkTextFile name = do
initFilePath :: FilePath -> FilePath
initFilePath f = reverse (dropWhile (/='/') (reverse f))
--- topological sorting with test of cyclicity
-
+-- | topological sorting with test of cyclicity
topoTest :: Eq a => [(a,[a])] -> Either [a] [[a]]
topoTest g = if length g' == length g then Left g' else Right (cyclesIn g ++[[]])
where
@@ -591,7 +590,7 @@ cyclesIn deps = nubb $ clean $ filt $ iterFix findDep immediate where
remdup [] = []
-
+-- | topological sorting
topoSort :: Eq a => [(a,[a])] -> [a]
topoSort g = reverse $ tsort 0 [ffs | ffs@(f,_) <- g, inDeg f == 0] [] where
tsort _ [] r = r