Description

Book Synopsis

Robert C. Martin (Uncle Bob) wrote his first line of code at the age of 12 in 1964 and has been employed as a programmer since 1970. He is cofounder of cleancoders.com, offering online video training for software developers, and is founder of Uncle Bob Consulting LLC, offering software consulting, training, and skill development services to major corporations worldwide. He served as the Master Craftsman at 8th Light, Inc., a Chicago-based software consulting firm. Mr. Martin has published dozens of articles in various trade journals, authored many books, and is a regular speaker at international conferences and trade shows.



Table of Contents

Foreword xiii
Preface xv
Acknowledgments xxi
About the Author xxiii

Part I: Functional Basics 1

Chapter 1: Immutability 3
What Is Functional Programming? 4
The Problem with Assignment 7
So Why Is It Called Functional? 10
No Change of State? 12
Immutability 15

Chapter 2: Persistent Data 17
On Cheating 19
Making Copies 20
Structural Sharing 23

Chapter 3: Recursion and Iteration 27
Iteration 28
Recursion 32

Chapter 4: Laziness 37
Lazy Accumulation 40
OK, but Why? 41
Coda 42

Chapter 5: Statefulness 43
When We MUST Mutate 47
Software Transactional Memory (STM) 48
Life Is Hard, Software Is Harder 51

Part II: Comparative Analysis 53

Chapter 6: Prime Factors 55
Java Version 56
Clojure Version 60
Conclusion 63

Chapter 7: Bowling Game 65
Java Version 66
Clojure Version 71
Conclusion 75

Chapter 8: Gossiping Bus Drivers 77
Java Solution 78
Clojure 88
Conclusion 93

Chapter 9: Object-Oriented Programming 95
Functional Payroll 98
Namespaces and Source Files 107
Conclusion 108

Chapter 10: Types 109

Part III: Functional Design 115

Chapter 11: Data Flow 117

Chapter 12: SOLID 125
The Single Responsibility Principle (SRP) 126
The Open-Closed Principle (OCP) 131
The Liskov Substitution Principle (LSP) 138
The Interface Segregation Principle (ISP) 147
The Dependency Inversion Principle (DIP) 152

Part IV: Functional Pragmatics 181

Chapter 13: Tests 183
But What about the REPL? 184
What about Mocks? 184
Property-Based Testing 186
A Diagnostic Technique 190
Functional 197

Chapter 14: GUI 199
Turtle-Graphics in Quil 200

Chapter 15: Concurrency 215
Conclusion 225

Part V: Design Patterns 227

Chapter 16: Design Patterns Review 229
Patterns in Functional Programming 233
Abstract Server 233
Adapter 236
Command 242
Composite 249
Decorator 260
Visitor 264
Abstract Factory 274
Conclusion 281
Postscript: OO Poison? 282

Part VI: Case Study 285

Chapter 17: Wa-Tor 287
Scratch That Itch 309
Showers Solve Problems 312
It's Time to Wildly Reproduce 322
What about the Sharks? 324
Conclusion 335

Afterword 337

Index 341

Functional Design

    Product form

    £34.19

    Includes FREE delivery

    RRP £37.99 – you save £3.80 (10%)

    Order before 4pm today for delivery by Fri 26 Jun 2026.

    A Paperback / softback by Robert Martin

      Trusted by thousands of customers. See 2,385+ Customer Reviews

      View other formats and editions of Functional Design by Robert Martin

      Publisher: Pearson Education (US)
      Publication Date: 11/10/2023
      ISBN13: 9780138176396, 978-0138176396
      ISBN10: 138176396

      Description

      Book Synopsis

      Robert C. Martin (Uncle Bob) wrote his first line of code at the age of 12 in 1964 and has been employed as a programmer since 1970. He is cofounder of cleancoders.com, offering online video training for software developers, and is founder of Uncle Bob Consulting LLC, offering software consulting, training, and skill development services to major corporations worldwide. He served as the Master Craftsman at 8th Light, Inc., a Chicago-based software consulting firm. Mr. Martin has published dozens of articles in various trade journals, authored many books, and is a regular speaker at international conferences and trade shows.



      Table of Contents

      Foreword xiii
      Preface xv
      Acknowledgments xxi
      About the Author xxiii

      Part I: Functional Basics 1

      Chapter 1: Immutability 3
      What Is Functional Programming? 4
      The Problem with Assignment 7
      So Why Is It Called Functional? 10
      No Change of State? 12
      Immutability 15

      Chapter 2: Persistent Data 17
      On Cheating 19
      Making Copies 20
      Structural Sharing 23

      Chapter 3: Recursion and Iteration 27
      Iteration 28
      Recursion 32

      Chapter 4: Laziness 37
      Lazy Accumulation 40
      OK, but Why? 41
      Coda 42

      Chapter 5: Statefulness 43
      When We MUST Mutate 47
      Software Transactional Memory (STM) 48
      Life Is Hard, Software Is Harder 51

      Part II: Comparative Analysis 53

      Chapter 6: Prime Factors 55
      Java Version 56
      Clojure Version 60
      Conclusion 63

      Chapter 7: Bowling Game 65
      Java Version 66
      Clojure Version 71
      Conclusion 75

      Chapter 8: Gossiping Bus Drivers 77
      Java Solution 78
      Clojure 88
      Conclusion 93

      Chapter 9: Object-Oriented Programming 95
      Functional Payroll 98
      Namespaces and Source Files 107
      Conclusion 108

      Chapter 10: Types 109

      Part III: Functional Design 115

      Chapter 11: Data Flow 117

      Chapter 12: SOLID 125
      The Single Responsibility Principle (SRP) 126
      The Open-Closed Principle (OCP) 131
      The Liskov Substitution Principle (LSP) 138
      The Interface Segregation Principle (ISP) 147
      The Dependency Inversion Principle (DIP) 152

      Part IV: Functional Pragmatics 181

      Chapter 13: Tests 183
      But What about the REPL? 184
      What about Mocks? 184
      Property-Based Testing 186
      A Diagnostic Technique 190
      Functional 197

      Chapter 14: GUI 199
      Turtle-Graphics in Quil 200

      Chapter 15: Concurrency 215
      Conclusion 225

      Part V: Design Patterns 227

      Chapter 16: Design Patterns Review 229
      Patterns in Functional Programming 233
      Abstract Server 233
      Adapter 236
      Command 242
      Composite 249
      Decorator 260
      Visitor 264
      Abstract Factory 274
      Conclusion 281
      Postscript: OO Poison? 282

      Part VI: Case Study 285

      Chapter 17: Wa-Tor 287
      Scratch That Itch 309
      Showers Solve Problems 312
      It's Time to Wildly Reproduce 322
      What about the Sharks? 324
      Conclusion 335

      Afterword 337

      Index 341

      Recently viewed products

      © 2026 Book Curl

        • American Express
        • Apple Pay
        • Diners Club
        • Discover
        • Google Pay
        • Maestro
        • Mastercard
        • PayPal
        • Shop Pay
        • Union Pay
        • Visa

        Login

        Forgot your password?

        Don't have an account yet?
        Create account