Skip to content

Instantly share code, notes, and snippets.

@MarcusVoelker
Last active August 29, 2015 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MarcusVoelker/dfe562b6ab141567316a to your computer and use it in GitHub Desktop.
Save MarcusVoelker/dfe562b6ab141567316a to your computer and use it in GitHub Desktop.
Adjacency List Map to dot graph
module ToDot where
import Data.Map
generateDot :: (Ord a, Show a) => Map a [a] -> IO ()
generateDot mp = do
putStrLn "graph G {"
foldrWithKey (\k v r ->
putStrLn (" v" ++ show k) >> Prelude.foldr (\e r' -> r' >> when (k < e) (putStrLn (" v" ++ show k ++ " -- v" ++ show e)))
r v
) (return ()) mp
putStrLn "}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment