be_ocaml/src/tools.ml
2020-11-04 12:08:22 +01:00

16 rivejä
No EOL
362 B
OCaml

open Graph
let rec clone_nodes gr =
n_fold gr (fun g id -> new_node g id) empty_graph
let gmap gr f =
e_fold gr (
fun g id_s id_d cost -> new_arc g id_s id_d (f cost)
) (clone_nodes gr)
let add_arc gr id1 id2 n =
let lbl = find_arc gr id1 id2 in
match lbl with
| None -> new_arc gr id1 id2 n
| Some cost -> new_arc gr id1 id2 (n + cost)