Elements of ML programming

0. A Perspective on ML and SML/NJ. I. INTRODUCTION TO PROGRAMMING IN ML. 1. Expressions. 2. Type Consistency. 3. Variables and Environments. 4. Tuples and Lists. 5. It's Easy It's "fun." 6. Patterns in Function Definitions. 7. Local Environments Using "let." 8. Exceptions. 9. Side Effects: Input and Output. II. ADVANCED FEATURES OF ML. 10. Polymorphic Functions. 11. Higher-Order Functions. 12. Defining New Types. 13. Programming with Datatypes. 14. The ML Module System. 15. Software Design Using Modules. 16. Arrays. 17. References. III. ADDITIONAL DETAILS AND FEATURES. 18. Record Structures. 19. Matches and Patterns. 20. More About Exceptions. 21. Counting with Functions as Values. 22. More About Input and Output. 23. Creating Executable Files. 24. Controlling Operator Grouping. 25. Built-In Functions of SML/NJ. 26. Summary of ML Syntax. Solutions to Selected Exercises. Index.