Abstract: At many universities students are taught declarative programming as a first language. The reasons behind this are not only to show students a different programming language, but often to change the way students think about programming. Indeed, we can often observe that C programmers change programming style once they are well acquainted with other programming paradigms. For example, exposing C programmers to an object-oriented language often inspires them to make better use of abstract data types. Once students have become competent declarative programmers, they often use fewer global variables in C, and make only use of side effects when it is clearly beneficial.