I didn't noticed this discussion topic until today. Higher-order functions and anonymous functions must certainly be covered, as even Python has them.
Another topic is type inference and the Hindley-Milner type system, which is surprisingly eye-opening to most programmers, who have only seen C-like type systems (static typing, compulsory type annotation) and Perl-like type systems (dynamic typing, no type annotation), and never imagined there could be a third alternative.
But I think the most important topic from the software engineering perspective is higher-order module. People flock to OOP because they need language support in structuring and architecting large-scale software, and before OOP there was only the inadequate first-order module. If they know higher-order module as well, they will see they have a choice.
|