; initiate a distance graph (define $A [|[| 0 19 36 66 99 65 |] [| 19 0 25 59 64 31 |] [| 36 25 0 84 48 28 |] [| 66 59 84 0 59 29 |] [| 99 64 48 59 0 9 |] [| 65 31 28 29 9 0 |]|]) (define $G.* (lambda [%t1 %t2] (with-symbols {i} (contract min (+ t1~#_i t2~i_#))))) (match (iterate (lambda [%P] (G.* P A)) A) (list something) {[>> P]}) ;[|[| 0 19 36 66 59 50 |] ; [| 19 0 25 59 40 31 |] ; [| 36 25 0 57 37 28 |] ; [| 66 59 57 0 38 29 |] ; [| 59 40 37 38 0 9 |] ; [| 50 31 28 29 9 0 |]|]