egison-3.7.0: sample/bellman-ford.egi
; 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)
{[<join _ <cons $P <cons ,P _>>> 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 |]|]