TYPE smallest(TYPE values[], int length, int (*lessThan)(TYPE a, TYPE b)) { TYPE small = values[0]; int i; for (i = 1; i < length; i++) { if ((*lessThan)(values[i], small)) small = values[i]; } /* for */ return small; } /* smallest */