Best Functional Software Programming Books

Functional programming is a declarative programming paradigm. It evolved from lambda calculus which is a computation system based exclusively on functions.

1. Learning Python, 5th Edition

Author: by Mark Lutz
O'Reilly Media
English
1648 pages

View on Amazon

Get a comprehensive, in-depth introduction to the core Python language with this hands-on book. Based on author Mark Lutz’s popular training course, this updated fifth edition will help you quickly write efficient, high-quality code with Python. It’s an ideal way to begin, whether you’re new to programming or a professional developer versed in other languages.

Complete with quizzes, exercises, and helpful illustrations, this easy-to-follow, self-paced tutorial gets you started with both Python 2.7 and 3. 3 the latest releases in the 3.X and 2. X linesplus all other releases in common use today. You’ll also learn some advanced language features that recently have become more common in Python code.

Explore Python’s major built-in object types such as numbers, lists, and dictionariesCreate and process objects with Python statements, and learn Python’s general syntax modelUse functions to avoid code redundancy and package code for reuseOrganize statements, functions, and other tools into larger components with modulesDive into classes: Python’s object-oriented programming tool for structuring codeWrite large programs with Python’s exception-handling model and development toolsLearn advanced Python tools, including decorators, descriptors, metaclasses, and Unicode processing


2. HTML and CSS QuickStart Guide: The Simplified Beginners Guide to Developing a Strong Coding Foundation, Building Responsive Websites, and Mastering … of Modern Web Design (QuickStart Guides)

Author: by David DuRocher
English
361 pages
1636100007

View on Amazon

Master HTML and CSS fundamentals to create beautiful websites. The best book on the market for modern web design fundamentals for 2021 and beyond! #1 AMAZON NEW RELEASE*Every one of the over 4 billion webpages online today use HTML markup language to display its content.HTML is everywhere.

Experienced developers know that a mastery of HTML and CSS fundamentals is not only an essential web design skill, but also the solid foundation of a robust coding skillset. In HTML & CSS QuickStart Guide author, instructor, and 10+ year Fortune 500 tech company veteran David DuRocher breaks down HTML5 and CSS3 fundamentals manageable, practical, and engaging segments designed for first-time developers.

David’s unique and engaging approach to teaching HTML and CSS principles means that readers are ready to start designing from the very first chapter without enduring an avalanche of boring jargon or dry technobabble. Use the enclosed bonus digital asset access to go beyond the book with your own hands-on project, GitHub code repository, online tools, resources, and more!


3. Grokking Simplicity: Taming complex software with functional thinking

Author: by Eric Normand
English
550 pages
1617296201

View on Amazon

Grokking Simplicity is a friendly, practical guide that will change the way you approach software design and development. Summary Distributed across servers, difficult to test, and resistant to modificationmodern software is complex. Grokking Simplicity is a friendly, practical guide that will change the way you approach software design and development.

It introduces a unique approach to functional programming that explains why certain features of software are prone to complexity, and teaches you the functional techniques you can use to simplify these systems so that they’re easier to test and debug.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Developers rightly fear the unintended complexity that infects most code. This book shows you how to write software that keeps complexity close to its inherent minimum.

As you write software you should distinguish between code that alters your system’s state, and code that does not. Once you learn to make that distinction, you can refactor much of your state-altering actions into stateless calculations. Your software will be simpler.


4. Learn Python Quickly: A Complete Beginner’s Guide to Learning Python, Even If You’re New to Programming (Crash Course With Hands-On Project)

Author: by Code Quickly
English
175 pages
1951791274

View on Amazon

Looking to learn Python? Python has gone to be one of the most popular programming languages in the world, and you will be one of the few people left out if you don’t add this knowledge to your arsenal. If you’re looking to learn Python, now is an excellent time to do so.

But where do you begin? You can start right here, right now, with this book. It makes learning Python simple, fast, and easy, taking away the confusion from learning a new language. When learning a new language, it’s easy to be overwhelmed and not know where to start or what to focus on.

You can spend a long time pursuing tutorials online only to find out you don’t really understand any of the concepts they covered. That won’t be a problem here! This book follows a step by step guide, walking you through everything you need to know about Python in an easy to follow fashion.

It will teach you all the basics of Python, and even some of the more advanced Python concepts, taking you from beginner to intermediate Python programmer. This book will give you:A solid foundation in Python programming. Intermediate and advanced topics once you’ve mastered the basics.


5. Modern Java in Action: Lambdas, streams, functional and reactive programming

Author: by Raoul-Gabriel Urma
Manning Publications
English
592 pages

View on Amazon

Manning’s bestselling Java 8 book has been revised for Java 9 and Java 10! In Modern Java in Action, readers build on their existing Java language skills with the newest features and techniques. The release of Java 9 builds on what made Java 8 so exciting.

In addition to Java 8’s lambdas and streams, Java 9 adds a host of new features of its own. It includes new library features to support reactive programming, which give users new ways of thinking about programming and writing code that is easier to read and maintain.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.


6. Serious Python: Black-Belt Advice on Deployment, Scalability, Testing, and More

Author: by Julien Danjou
English
240 pages
1593278780

View on Amazon

An indispensable collection of practical tips and real-world advice for tackling common Python problems and taking your code to the next level. Features interviews with high-profile Python developers who share their tips, tricks, best practices, and real-world advice gleaned from years of experience.

Sharpen your Python skills as you dive deep into the Python programming language with Serious Python. You’ll cover a range of advanced topics like multithreading and memorization, get advice from experts on things like designing APIs and dealing with databases, and learn Python internals to help you gain a deeper understanding of the language itself.

Written for developers and experienced programmers, Serious Python brings together over 15 years of Python experience to teach you how to avoid common mistakes, write code more efficiently, and build better programs in less time. As you make your way through the book’s extensive tutorials, you’ll learn how to start a project and tackle topics like versioning, layouts, coding style, and automated checks.


7. JavaScript: The Good Parts: The Good Parts

Author: by Douglas Crockford
O'Reilly Media
English
176 pages

View on Amazon

Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a hurry before it could be refined. This authoritative book scrapes away these bad features to reveal a subset of JavaScript that’s more reliable, readable, and maintainable than the language as a wholea subset you can use to create truly extensible and efficient code.

Considered the JavaScript expert by many people in the development community, author Douglas Crockford identifies the abundance of good ideas that make JavaScript an outstanding object-oriented programming language-ideas such as functions, loose typing, dynamic objects, and an expressive object literal notation.

Unfortunately, these good ideas are mixed in with bad and downright awful ideas, like a programming model based on global variables. When Java applets failed, JavaScript became the language of the Web by default, making its popularity almost completely independent of its qualities as a programming language.


8. Kotlin in Action

Author: by Dmitry Jemerov
Manning Publications
English
360 pages

View on Amazon

SummaryKotlin in Action guides experienced Java developers from the language basics of Kotlin all the way through building applications to run on the JVM and Android devices. Foreword by Andrey Breslav, Lead Designer of Kotlin. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

About the TechnologyDevelopers want to get work done – and the less hassle, the better. Coding with Kotlin means less hassle. The Kotlin programming language offers an expressive syntax, a strong intuitive type system, and great tooling support along with seamless interoperability with existing Java code, libraries, and frameworks.

Kotlin can be compiled to Java bytecode, so you can use it everywhere Java is used, including Android. And with an effi cient compiler and a small standard library, Kotlin imposes virtually no runtime overhead. About the BookKotlin in Action teaches you to use the Kotlin language for production-quality applications.


9. Learn Python Programming: The no-nonsense, beginner's guide to programming, data science, and web development with Python 3.7, 2nd Edition

Author: by Fabrizio Romano
Packt Publishing
English
508 pages

View on Amazon

Learn the fundamentals of Python (3. 7) and how to apply it to data science, programming, and web development. Fully updated to include hands-on tutorials and projects. Key Features Learn the fundamentals of Python programming with interactive projects Apply Python to data science with tools such as IPython and Jupyter Utilize Python for web development and build a real-world app using Django Book Description Learn Python Programming is a quick, thorough, and practical introduction to Python – an extremely flexible and powerful programming language that can be applied to many disciplines.

Unlike other books, it doesn’t bore you with elaborate explanations of the basics but gets you up-and-running, using the language. You will begin by learning the fundamentals of Python so that you have a rock-solid foundation to build upon. You will explore the foundations of Python programming and learn how Python can be manipulated to achieve results.

Explore different programming paradigms and find the best approach to a situation; understand how to carry out performance optimization and effective debugging; control the flow of a program; and utilize an interchange format to exchange data. You’ll also walk through cryptographic services in Python and understand secure tokens.

10. Programming Rust: Fast, Safe Systems Development

Author: by Jim Blandy
O'Reilly Media
English
736 pages

View on Amazon

Systems programming provides the foundation for the world’s computation. Developing performance-sensitive code requires a programming language that puts programmers in control of how memory, processor time, and other system resources are used. The Rust systems programming language combines that control with a modern type system that catches broad classes of common mistakes, from memory management errors to interthread data races.

With this practical guide, experienced systems programmers will learn how to successfully bridge the gap between performance and safety using Rust. Jim Blandy, Jason Orendorff, and Leonora Tindall demonstrate how Rust’s features put programmers in control over memory consumption and processor use by combining predictable performance with memory safety and trustworthy concurrency.

You’ll learn:Rust’s fundamental data types and the core concepts of ownership and borrowingLanguage basics including error handling, crates and modules, structs, and enumsHow to write flexible, efficient code with traits and genericsRust’s key power tools: closures, iterators, and asynchronous programmingCollections, strings and text, input and output, concurrency, macros, unsafe code, and interfacing with foreign functionsThis updated edition covers Rust 1.50 (February 2021).

11. Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#

Author: by Scott Wlaschin
1680502549
Pragmatic Bookshelf
English

View on Amazon

You want increased customer satisfaction, faster development cycles, and less wasted work. Domain-driven design (DDD) combined with functional programming is the innovative combo that will get you there. In this pragmatic, down-to-earth guide, you’ll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and concisely – often more so than an object-oriented approach.

Practical examples in the open-source F# functional language, and examples from familiar business domains, show you how to apply these techniques to build software that is business-focused, flexible, and high quality. Domain-driven design is a well-established approach to designing software that ensures that domain experts and developers work together effectively to create high-quality software.

This book is the first to combine DDD with techniques from statically typed functional programming. This book is perfect for newcomers to DDD or functional programming – all the techniques you need will be introduced and explained. Model a complex domain accurately using the F# type system, creating compilable code that is also readable documentation-ensuring that the code and design never get out of sync.

12. Head First Kotlin: A Brain-Friendly Guide

Author: by Dawn Griffiths
O'Reilly Media
English
482 pages

View on Amazon

What will you learn from this book? Head First Kotlin is a complete introduction to coding in Kotlin. This hands-on book helps you learn the Kotlin language with a unique method that goes beyond syntax and how-to manuals and teaches you how to think like a great Kotlin developer.

You’ll learn everything from language fundamentals to collections, generics, lambdas, and higher-order functions. Along the way, you’ll get to play with both object-oriented and functional programming. If you want to really understand Kotlin, this is the book for you. Why does this book look so different?

Based on the latest research in cognitive science and learning theory, Head First Kotlin uses a visually rich format to engage your mind rather than a text-heavy approach that puts you to sleep. Why waste your time struggling with new concepts?

This multisensory learning experience is designed for the way your brain really works.

13. Programming Language Pragmatics

Author: by Michael Scott
Morgan Kaufmann
English
992 pages

View on Amazon

Programming Language Pragmatics, Fourth Edition, is the most comprehensive programming language textbook available today. It is distinguished and acclaimed for its integrated treatment of language design and implementation, with an emphasis on the fundamental tradeoffs that continue to drive software development.

The book provides readers with a solid foundation in the syntax, semantics, and pragmatics of the full range of programming languages, from traditional languages like C to the latest in functional, scripting, and object-oriented programming. This fourth edition has been heavily revised throughout, with expanded coverage of type systems and functional programming, a unified treatment of polymorphism, highlights of the newest language standards, and examples featuring the ARM and x86 64-bit architectures.

14. Python Workout: 50 ten-minute exercises

Author: by Reuven M. Lerner
Manning Publications
English
248 pages

View on Amazon

The only way to master a skill is to practice. In Python Workout, author Reuven M. Lerner guides you through 50 carefully selected exercises that invite you to flex your programming muscles. As you take on each new challenge, you’ll build programming skill and confidence.

Summary The only way to master a skill is to practice. In Python Workout, author Reuven M. Lerner guides you through 50 carefully selected exercises that invite you to flex your programming muscles. As you take on each new challenge, you’ll build programming skill and confidence.

The thorough explanations help you lock in what you’ve learned and apply it to your own projects. Along the way, Python Workout provides over four hours of video instruction walking you through the solutions to each exercise and dozens of additional exercises for you to try on your own.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology To become a champion Python programmer you need to work out, building mental muscle with your hands on the keyboard.

15. Functional Programming, Simplified: (Scala Edition)

Author: by Alvin Alexander
English
728 pages
1979788782

View on Amazon

If you’ve had trouble trying to learn Functional Programming (FP), you’re not alone. In this book, Alvin Alexander author of the Scala Cookbook and former teacher of Java and Object-Oriented Programming (OOP) classes writes about his own problems in trying to understand FP, and how he finally conquered it.

What he originally learned is that experienced FP developers are driven by two goals: to use only immutable values, and write only pure functions. What he later learned is that they have these goals as the result of another larger goal: they want all of their code to look and work just like algebra.

While that sounds simple, it turns out that these goals require them to use many advanced Scala features which they often use all at the same time. As a result, their code can look completely foreign to novice FP developers.

As Mr. Alexander writes, When you first see their code it’s easy to ask, Why would anyone write code like this?’Mr. Alexander answers that Why? Question by explaining the benefits of writing pure functional code. Once you understand those benefits your motivation for learning FP he shares five rules for programming in the book:All fields must be immutable (val’ fields).

16. Programming Scala: Scalability = Functional Programming + Objects

Author: by Dean Wampler
O'Reilly Media
English
556 pages

View on Amazon

Get up to speed on Scala-the JVM, JavaScript, and natively compiled language that offers all the benefits of functional programming, a modern object model, and an advanced type system. Packed with code examples, this comprehensive book shows you how to be productive with the language and ecosystem right away.

You’ll learn why Scala is ideal for building today’s highly scalable, data-centric applications, while maximizing developer productivity. While Java remains popular and Kotlin has become popular, Scala hasn’t been sitting still. This third edition covers the new features in Scala 3.

0 with updates throughout the book. Programming Scala is ideal for beginning to advanced developers who want a complete understanding of Scala’s design philosophy and features with a thoroughly practical focus. Program faster with Scala’s succinct and flexible syntaxDive into basic and advanced functional programming techniquesBuild killer big data and distributed apps using Scala’s functional combinators and tools like Spark and AkkaCreate concise solutions to challenging design problems with the sophisticated type system, mixin composition with traits, pattern matching, and more