Block
Let MAP
(SEARCH.MAP Z.compare
Func {{key _}} key)
In
Let G (GRAPH.G MAP)
Let g
(LIST.reduce
[Right
{0 [Right 3 & 1 & 'nil]} &
{1 [Right 2 & 0 & 5 & 'nil]} &
{2 [Right 3 & 'nil]} &
{3 [Right 2 & 4 & 'nil]} &
'nil]
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"