main
Where
Let main args.
Let MAP.
(SEARCH.MAP Z.compare
Func {key _}. key)
In
Let G. (GRAPH.G MAP)
Let g.
(LIST.reduce
[
{0 [3 1]}
{1 [2 0 5]}
{2 [3]}
{3 [2 4]}
]
MAP.empty
MAP.insert)
In
(LIST.for_each (G.strongly_connected_components g)
Func c. (STDIO.print_line $ STRING.join " " $ LIST.map c Z.show))
Where
Let GRAPH. Package "graph"
Let LIST. Package "list"
Let SEARCH. Package "search"
Let STDIO. Package "stdio"
Let STRING. Package "string"
Let Z. Package "z"