C Functional Programming