That is unpredictable, but not a side effect. Side effects are changes that are not declared as part of the function parameters.
If you model the controller input as a function parameter, that's just a state argument, and FP can handle it declaratively just fine without having side effects.