What makes functions different from simple data types like numbers and characters?
While there are many differences, Python aims to treat functions much like other values.
One way to see this is the way that functions can be used, like numbers, as arguments in expressions.

This is a somewhat advanced topic, initially seeming not so useful. The example here is a simple problem, finding the word which has the most "e" letters in a list. To do this, two features of Python not yet introduced are used: the `max` function of a list and the `count` method. Examples of these are:

 ```1 2 3 4``` ```>>> max([8,2,5,19,3]) 19 >>> "multiform plastic".count('i') 2 ```

Above, `max` is seen to be a function that finds the largest value in a sequence. The `count` method tells us how many of a given value occur in a string.

Back to solving the problem, shown in an example that takes advantage of a little-known feature of the `max` function, which is a keyword parameter.

#### Composition

 def ecount(word): R = word.count("e") return R def mostEword(L): T = max(L,key=ecount) return T A = ["let","the","world","see","which"] print max(A) print mostEword(A)

The "maximum" word in the list is world, since it is the word that appears last in the dictionary. However, what if we would like to judge "maximum" not on the basis of alphabetic order, but by the number of "e" letters in the word? It turns out that this is an option to `max`, where the caller can specify a function called on each word, before comparison is made.