first class functions - c