📖 Overview
Programming in Standard ML (SML) is a comprehensive introduction to functional programming using the Standard ML language. The text moves from basic concepts through to advanced topics in programming language design and implementation.
The book presents core SML features like type inference, pattern matching, polymorphism, and modules through concrete examples and programming exercises. Each chapter builds on previous material while introducing new concepts, with formal definitions balanced against practical applications.
The content emphasizes proper software engineering practices and type-safe programming within the functional paradigm. Much attention is given to the mathematical foundations that underpin SML's design, particularly its type system and operational semantics.
The work serves as both a practical programming guide and a window into the theoretical principles of programming language design. Its systematic treatment of functional programming concepts reflects the author's goal of bridging computer science theory with programming practice.
👀 Reviews
Readers describe this as a compact, mathematically-oriented SML reference that requires significant programming experience to follow. The book's rigorous treatment of types and formal semantics receives frequent mentions in reviews.
Liked:
- Clear explanations of ML's type system and pattern matching
- Focus on mathematical foundations
- Detailed coverage of modules and functors
- Quality exercises that build understanding
Disliked:
- Too abstract and formal for beginners
- Limited practical examples
- Not enough coverage of the standard library
- Lacks guidance on real-world ML programming
From Goodreads (4.14/5 from 37 ratings):
"Excellent theoretical foundation but you'll need supplementary material for actual programming" - M. Shaw
"Dense but precise coverage of SML semantics" - R. Kumar
Amazon (4/5 from 6 reviews):
"Better suited as a second ML book after learning basics elsewhere" - Anonymous
"Good reference but challenging for self-study" - T. Wilson
📚 Similar books
Types and Programming Languages by Benjamin Pierce.
A mathematical treatment of type systems provides deeper understanding of ML's type system and functional programming concepts.
Real World OCaml by Yaron Minsky, Anil Madhavapeddy, and Jason Hickey. OCaml shares ML's foundations and this book presents similar functional programming patterns in a production context.
Introduction to Functional Programming by Philip Wadler. The book explores functional programming concepts through Haskell while maintaining the mathematical rigor found in Harper's ML text.
The Little MLer by Daniel P. Friedman. This text presents ML concepts through dialogue and exercises that complement Harper's more formal approach.
Practical Foundations for Programming Languages by Robert Harper. This text expands on the theoretical foundations introduced in Programming in Standard ML with deeper examination of programming language concepts.
Real World OCaml by Yaron Minsky, Anil Madhavapeddy, and Jason Hickey. OCaml shares ML's foundations and this book presents similar functional programming patterns in a production context.
Introduction to Functional Programming by Philip Wadler. The book explores functional programming concepts through Haskell while maintaining the mathematical rigor found in Harper's ML text.
The Little MLer by Daniel P. Friedman. This text presents ML concepts through dialogue and exercises that complement Harper's more formal approach.
Practical Foundations for Programming Languages by Robert Harper. This text expands on the theoretical foundations introduced in Programming in Standard ML with deeper examination of programming language concepts.
🤔 Interesting facts
🔍 Robert Harper is one of the original developers of the Standard ML programming language alongside Robin Milner and others at the University of Edinburgh.
📚 The book was developed from course materials used at Carnegie Mellon University, where Harper has taught programming languages since 1988.
💡 Standard ML was the first programming language to use Hindley-Milner type inference, which allows automatic detection of most general types without requiring explicit type annotations.
🎓 The book emphasizes the mathematical foundations of programming, reflecting ML's origins in automated theorem proving and its close connection to formal logic.
⚡ Standard ML influenced many modern programming languages, including OCaml, F#, and Rust, particularly in their type systems and pattern matching features.