As far as I understand, although functions and algorithms have the same "interface", the difference is that algorithms have(/include) states and functions does not, am I right?
Both can have multiple sub-algorithms/functions.
The problem of the sameness is just that we can't define the precise captured begin and end states of the algorithms,
If the universe is the "main state"... The evolution is just an algorithm, state transforming to another through various sub-states.
We can use monadic bind to combine functions, so that is also true to algorithms, right? (like in the PDC presentation of F# 3.0, which shows the similarity between compilers and search engines.)