It is possible to write a program in purely functional subset of an imperative language such as C, but certain limitations of the language quickly become apparent. What features would need to be added to your favorite imperative language to make it genuinely useful as a functional language (Hint: what does Scheme have that C lacks?)