The Use of Functional Languages in Teaching Computer Science