
Hello,
<quote> taxRate = 0.06
total cart = subtotal + tax where subtotal = sum cart taxable = filter isTaxable cart tax = (sum taxable) * taxRate
This example defines two functions, taxRate, which returns a constant value, and total, which computes the total cost of the list of items in a shopping cart. (Although the taxRate definition appears to be defining a variable, it's best to think of it as a constant function, a function that takes no parameters and always returns the same value.) The definition of total is quite expressive, and highlights the intent of the function, by isolating and naming important sub-expressions in the computation. (total also refers to an isTaxable function, not presented here.) </quote>
This explanation is just wrong. A function is an expression whose type is an arrow; e.g. Int -> Int. The type of taxRate is (Fractional t) => t. There is some leeway for taxRate to be a function if someone provided a Fractional instance for a function type; but that seems to be beyond the scope of the quoted text which comes from an introductory explanation. Furthermore, a constant function is a function which ignores its argument; e.g. \x -> 0.06 -Jeff