I think it can help you to see the simple difference, you can look on Java examples.
You can create method in classic way:
public int multiply(int a, int b, int c){
return a * b * c;
}
public int sum(int a, int b, int c){
return a + b + c;
}
But you can implement it in functional way:
@FunctionalInterface
interface Operation<T, R> {
T count(R a, R b, R c);
} // or you can use Java 8 functional interfaces, if its usefull for you.
Operation<Double, Integer> divide= (x,y,z) -> x / y / z;
sout(divide.count(12,4,5); // returns quotient in Double type.
Opertion<Integer, Integer> sum = (x,y,z) -> x + y + z;
sout(sum.count(1,3,3) // returns sum in Integer type.
You are working with only ONE method - count().
On this way you can avoid duplicate of methods and just using functional way to operate what you need with. Anyway you are getting returned object(not primitive variable) because of generics.
But it is still not clear functional programming. If you are good in Java, you can try Scala(but it is not clear functional TOO. Good examples of functional languages are: Haskell, JavaScript, PureScript