Well, by definition, a function is something that returns a value and should not have any side effects. Functional programming takes this paradigm to the extreme.
Unlike an operation or subroutine, it may not have a return value and instead have some side effect. Imperative programming depends on such things. The only language I worked with was actively forcing you to declare this Visual Basic (sub and function). In C #, you simply declare void as a return type if you don't have a function in the classical sense.
The term method was invented by AFAIK to distinguish object-oriented programming from other styles. Then the function that is part (element) of the object will be a method.
I hope this helps.
source share