if (exponent < 0) return 1 / pow(number, -1 * exponent); else if (exponent == 0) return 1; else // exponent > 0 return number * pow(number, exponent - 1);
Is this Java or JavaScript code? In fact, it could be either!
A definition of pow in JavaScript, which a) declares the function pow in terms of its parameters; b) defines a particular implementation of the function; and c) attempts to conform to the Google JavaScript Style Guide, might look like this:
function pow(number, exponent) { if (exponent < 0) { return 1 / pow(number, -1 * exponent); } else if (exponent == 0) { return 1; } else { // exponent > 0 return number * pow(number, exponent - 1); } }
Similarly, here's a definition of pow in Java, which a) includes the same implementation; b) declares the method pow in terms of its parameters, the types of its two parameters (int in both cases), and the type of its return value (double); c) declares the method to be a public static method; and d) attempts to conform to the Google Java Style Guide:
public static double pow(int number, int exponent) { if (exponent < 0) { return 1 / pow(number, -1 * exponent); } else if (exponent == 0) { return 1; } else { // exponent > 0 return number * pow(number, exponent - 1); } }