# 'if' is used a lot in the next definition in place of and / or # this is because I haven't established lazy evaluation forms for and / or # so this very inefficient algorithm completely bogs down when combined # ... during testing with a dumb implementation for 'exists'. [hear] (define graph-linked* / lambda (g n1 n2) (if (= (n1) (n2)) (true) (if (graph-linked (g) (n1) (n2)) (true) (exists (? n3 / if (graph-linked (g) (n1) (n3)) (graph-linked* (g) (n3) (n2)) (false))))));