3.1 Function data type, part 3

The function type hasn't been discussed in any depth earlier. You've seen
it used but not really explained in any detail. However, it's very
important that you do understand how they work, as you can build very
complex and effective expressions using them, and above all you will both
see them used and even be forced to use them here and there. All the
functions that used to take function names as strings now take function
pointers as arguments instead.