The lack of loops is really the same as the matter of no side effects. Since one pass
through a loop cannot have variables with different values than another pass, there is
nothing to distinguish them; and the need to branch is usually in order to do a different
program activity. Since functional programming doesn't have activities, but only,
definitions, why bother branching.