Unfortunately Dijkstra and Iverson took personal dislikes to each other's approach, or we might have had a language that abstracted data flow like Iverson's APL and abstracted code flow like Dijkstra's Guarded Commands.
if a < b → c := true
□ a ≥ b → c := false
fi
To an APL dfn with "guards": c ← {
a < b : true
a ≥ b : false
}
As in GCL, if none of the guards hold true, the dfn (braces) will terminate without return value, and thus the code will abort with an error.(seems like a degenerate, empty, dfn also behaves differently?)