Functional programming can do procedural programming as well (monads), you just to be more more explicit about the state thats being modified.
I agree static typing is somewhat orthogonal, but it seems to be the case that functional languages have much more powerful type systems than procedural ones. I don’t know enough to say whether similar powerful type systems can be developed for procedural languages.
What I meant by ′ program evaluation is defined …” is that in many functional languages, a term is evaluated by transforming it into another term in the same language (such as via beta reduction), but this isn’t true in procedural languages. You are correct that functional languages have a lot more options about the order in which this is done.
Couple of comments:
Functional programming can do procedural programming as well (monads), you just to be more more explicit about the state thats being modified.
I agree static typing is somewhat orthogonal, but it seems to be the case that functional languages have much more powerful type systems than procedural ones. I don’t know enough to say whether similar powerful type systems can be developed for procedural languages.
What I meant by ′ program evaluation is defined …” is that in many functional languages, a term is evaluated by transforming it into another term in the same language (such as via beta reduction), but this isn’t true in procedural languages. You are correct that functional languages have a lot more options about the order in which this is done.