As the semester progresses, we will add programs for you to
browse online.
Most of them are in a hypertext format created by the
noweb literate programming tool.
You can view a
topological sort in uML so
you can see how the type inference works.
The representation of a graph is a list of edges; an edge is a pair.
Try
-> (tsort (convert '((a b) (b c) (b d) (d e))))
val it = (a b c d e) : sym list
-> (tsort (convert '((a b) (b c) (b d) (d e) (e a))))
val it = (The-graph-has-a-cycle: a -> b -> d -> e -> a) : sym list