Documentation
Lazyness properties of Nat
makes it ideal for lazy list length computation.
Examples:
length [1..] > 100
length undefined >= 0
length (undefined: undefined) >= 1
Rank computation with lazy Peano numbers.
The dependence function represents a graph with multiedges (edges with multiple start nodes).
dependence n
is the list of the start nodes of all multiedges whose end node is n
.
nodeRank n
computes the length of the shortest path to n
. Note that if n
is an end point of a multiedge with no start point,
then nodeRank n == 0
.
- If
dependence n == []
thennodeRank n == infinity
, becausen
is not accessable. - If
any null (dependence n)
thennodeRank n == 0
- Otherwise if
dependence n == [l1, l2, ..]
thennodeRank n == 1 + minimum [maximum (map nodeRank l1), maximum (map nodeRank l2), ..]
If there is an inevitable cycle in the graph, the rank is infinity
.
One can observe these cases, due to the observable infinity value.