Learning Functional ProgrammingLearn how to think and write code like a functional programmer. With this practical guide, software developers familiar with object-oriented programming will dive into the core concepts of functional programming and learn how to use both functional and OOP features together on large or complex software projects.
Author Jack Widman uses samples from Java, Python, C#, Scala, and JavaScript to help you gain a new perspective and a set of tools for managing the complexity in your problem domain. You'll be able to write code that's simpler, reusable, easier to test and modify, and more consistently correct. This book also shows you how to use patterns from category theory to help bridge the gap between OOP and functional programming.
Learn functional programming fundamentals and explore the way functional programmers approach problems; Understand how FP differs from object-oriented and imperative programming; Use a set of practical, applicable design patterns that model reality in a f ...
Programming C# 10C# is undeniably one of the most versatile programming languages available to engineers today. With this comprehensive guide, you'll learn just how powerful the combination of C# and .NET can be. Author Ian Griffiths guides you through C# 10.0 and .NET 6 fundamentals and techniques for building cloud, web, and desktop applications.
Designed for experienced programmers, this book provides many code examples to help you work with the nuts and bolts of C#, such as generics, LINQ, and asynchronous programming features. You'll get up to speed on .NET 6 and the latest C# 9.0 and 10.0 additions, including records, enhanced pattern matching, and new features designed to remove "ceremony" to improve productivity.
Understand how .NET has changed in the most recent releases, and learn what it means for application development; Select the most appropriate C# language features for any task; Learn when to use the new features and when to stick with older ones; Examine the range of functionalit ...
Data-Oriented ProgrammingData-Oriented Programming is a one-of-a-kind guide that introduces the data-oriented paradigm. This groundbreaking approach represents data with generic immutable data structures. It simplifies state management, eases concurrency, and does away with the common problems you'll find in object-oriented code. The book presents powerful new ideas through conversations, code snippets, and diagrams that help you quickly grok what's great about DOP. Best of all, the paradigm is language-agnostic - you'll learn to write DOP code that can be implemented in JavaScript, Ruby, Python, Clojure, and also in traditional OO languages like Java or C#.
Code that combines behavior and data, as is common in object-oriented designs, can introduce almost unmanageable complexity for state management. The Data-oriented programming (DOP) paradigm simplifies state management by holding application data in immutable generic data structures and then performing calculations using non-mutating general-purpose fun ...
Pragmatic Python ProgrammingExplore the world of programming languages through Python and learn the building blocks of writing programs. This book covers Python 3.10, explaining it through six key concepts. Each chapter contains a real-world example with practical advice and a section on advanced concepts.
You'll start by reviewing the concept of expressions and functions, which are two of the core building blocks of programming languages. You'll then move on to object-oriented concepts to help gain a practical understanding of Python, along with a chapter on control flow constructs. The book also takes a close look at sequences, explaining constructs and additional types, and wraps up with a chapter on modules, focusing on how to use and create packages. ...
Test Your Skills in C# ProgrammingReview the fundamental constructs in C# using Q&As and program segments to boost your confidence and gain expertise. This book will help you analyze your programs more efficiently and enhance your programming skills.
The book is divided into three parts, where you will learn the fundamentals, object-oriented programming, and some advanced features of C#. In the first part, you will review C# and .NET basics along with the important constructs such as strings, arrays, and structures. In the second part, you'll review the concepts of object-oriented programming in detail. Here, you will go through various program segments in class and objects, inheritance, polymorphism, abstraction, encapsulation, and much more. You will also analyze the output of the given programs with the help of Q&A sections. The uses of interfaces, static class, and exception handling are discussed in the book along with some other important concepts in C#. In the third and last part, you will learn advanced feat ...
Practical Haskell, 3rd EditionGet a practical, hands-on introduction to the Haskell language, its libraries and environment, and to the functional programming paradigm that is fast growing in importance in the software industry. This updated edition includes more modern treatment of Haskell's web framework and APIs.
This book contains excellent coverage of the Haskell ecosystem and supporting tools, including Cabal and Stack for managing projects, HUnit and QuickCheck for software testing, WAI and Elm to develop the back end and front end of web applications, Persistent and Esqueleto for database access, and parallel and distributed programming libraries.
You'll see how functional programming is gathering momentum, allowing you to express yourself in a more concise way, reducing boilerplate, and increasing the safety of your code. Haskell is an elegant and noise-free pure functional language with a long history, having a huge number of library contributors and an active community.
This makes Haskell the b ...
Effective HaskellPut the power of Haskell to work in your programs, learning from an engineer who uses Haskell daily to get practical work done efficiently. Leverage powerful features like Monad Transformers and Type Families to build useful applications. Realize the benefits of a pure functional language, like protecting your code from side effects. Manage concurrent processes fearlessly. Apply functional techniques to working with databases and building RESTful services. Don't get bogged down in theory, but learn to employ advanced programming concepts to solve real-world problems. Don't just learn the syntax, but dive deeply into Haskell as you build efficient, well-tested programs.
Haskell is a pure functional programming language with a rich ecosystem of tools and libraries. Designed to push the boundaries of programming, it offers unparalleled power for building reliable and maintainable systems. But to unleash that power, you need a guide. Effective Haskell is that guide. Written by an engin ...
Bare Metal CBare Metal C will teach you how to program embedded devices with the C programming language. For embedded system programmers who want precise and complete control over the system they are using, this book pulls back the curtain on what the compiler is doing for you so that you can see all the details of what's happening with your program.
The first part of the book teaches C basics with the aid of a low-cost, widely available bare metal system (the Nucleo Arm evaluation system), which gives you all the tools needed to perform basic embedded programming. As you progress through the book you'll learn how to integrate serial input/output (I/O) and interrupts into your programs. You'll also learn what the C compiler and linker do behind the scenes, so that you'll be better able to write more efficient programs that maximize limited memory. Finally, you'll learn how to use more complex, memory hungry C features like dynamic memory, file I/O, and floating-point numbers. ...
An Artist's Guide to ProgrammingAn Artist's Guide to Programming teaches computer programming with the aid of 100 example programs, each of which integrates graphical or sound output. The Processing-language-based examples range from drawing a circle and animating bouncing balls to 3D graphics, audio visualization, and interactive games.
Readers learn core programming concepts like conditions, loops, arrays, strings and functions, as well as how to use Processing to draw lines, shapes, and 3D objects. They'll learn key computer graphics concepts like manipulating images, animating text, mapping textures onto objects, and working with video. Advanced examples include sound effects and audio visualization, network communication, 3D geometry and animation, simulations of snow and smoke, predator-prey populations, and interactive games. ...
Hacking APIsAn Application Programming Interface (API) is a software connection that allows applications to communicate and share services. Hacking APIs will teach you how to test web APIs for security vulnerabilities. You'll learn how the common API types, REST, SOAP, and GraphQL, work in the wild. Then you'll set up a streamlined API testing lab and perform common attacks, like those targeting an API's authentication mechanisms, and the injection vulnerabilities commonly found in web applications. In the book's guided labs, which target intentionally vulnerable APIs.
By the end of the book, you'll be prepared to uncover those high-payout API bugs that other hackers aren't finding, and improve the security of applications on the web. ...