functional programming uses programmatic functions in the same way that mathematicians use functions[0]. This has some important implications, including the facts that there won't be any side-effects and that the same inputs will always result in the same outputs. These are among the reasons that functional programming and the concept of immutable data [1] are so correlated.
[0] https://en.wikipedia.org/wiki/Function_(mathematics)
[1] https://en.wikipedia.org/wiki/Immutable