Learning Functional Data Structures and Algorithms

Learning Functional Data Structures and Algorithms

Author: Atul S. Khot

Publisher: Packt Publishing Ltd

Published: 2017-02-23

Total Pages: 312

ISBN-13: 178588588X

DOWNLOAD EBOOK

Learn functional data structures and algorithms for your applications and bring their benefits to your work now About This Book Moving from object-oriented programming to functional programming? This book will help you get started with functional programming. Easy-to-understand explanations of practical topics will help you get started with functional data structures. Illustrative diagrams to explain the algorithms in detail. Get hands-on practice of Scala to get the most out of functional programming. Who This Book Is For This book is for those who have some experience in functional programming languages. The data structures in this book are primarily written in Scala, however implementing the algorithms in other functional languages should be straight forward. What You Will Learn Learn to think in the functional paradigm Understand common data structures and the associated algorithms, as well as the context in which they are commonly used Take a look at the runtime and space complexities with the O notation See how ADTs are implemented in a functional setting Explore the basic theme of immutability and persistent data structures Find out how the internal algorithms are redesigned to exploit structural sharing, so that the persistent data structures perform well, avoiding needless copying. Get to know functional features like lazy evaluation and recursion used to implement efficient algorithms Gain Scala best practices and idioms In Detail Functional data structures have the power to improve the codebase of an application and improve efficiency. With the advent of functional programming and with powerful functional languages such as Scala, Clojure and Elixir becoming part of important enterprise applications, functional data structures have gained an important place in the developer toolkit. Immutability is a cornerstone of functional programming. Immutable and persistent data structures are thread safe by definition and hence very appealing for writing robust concurrent programs. How do we express traditional algorithms in functional setting? Won't we end up copying too much? Do we trade performance for versioned data structures? This book attempts to answer these questions by looking at functional implementations of traditional algorithms. It begins with a refresher and consolidation of what functional programming is all about. Next, you'll get to know about Lists, the work horse data type for most functional languages. We show what structural sharing means and how it helps to make immutable data structures efficient and practical. Scala is the primary implementation languages for most of the examples. At times, we also present Clojure snippets to illustrate the underlying fundamental theme. While writing code, we use ADTs (abstract data types). Stacks, Queues, Trees and Graphs are all familiar ADTs. You will see how these ADTs are implemented in a functional setting. We look at implementation techniques like amortization and lazy evaluation to ensure efficiency. By the end of the book, you will be able to write efficient functional data structures and algorithms for your applications. Style and approach Step-by-step topics will help you get started with functional programming. Learn by doing with hands-on code snippets that give you practical experience of the subject.


Purely Functional Data Structures

Purely Functional Data Structures

Author: Chris Okasaki

Publisher: Cambridge University Press

Published: 1999-06-13

Total Pages: 236

ISBN-13: 9780521663502

DOWNLOAD EBOOK

This book describes data structures and data structure design techniques for functional languages.


R Data Structures and Algorithms

R Data Structures and Algorithms

Author: Dr. PKS Prakash

Publisher: Packt Publishing Ltd

Published: 2016-11-21

Total Pages: 266

ISBN-13: 1786464160

DOWNLOAD EBOOK

Increase speed and performance of your applications with efficient data structures and algorithms About This Book See how to use data structures such as arrays, stacks, trees, lists, and graphs through real-world examples Find out about important and advanced data structures such as searching and sorting algorithms Understand important concepts such as big-o notation, dynamic programming, and functional data structured Who This Book Is For This book is for R developers who want to use data structures efficiently. Basic knowledge of R is expected. What You Will Learn Understand the rationality behind data structures and algorithms Understand computation evaluation of a program featuring asymptotic and empirical algorithm analysis Get to know the fundamentals of arrays and linked-based data structures Analyze types of sorting algorithms Search algorithms along with hashing Understand linear and tree-based indexing Be able to implement a graph including topological sort, shortest path problem, and Prim's algorithm Understand dynamic programming (Knapsack) and randomized algorithms In Detail In this book, we cover not only classical data structures, but also functional data structures. We begin by answering the fundamental question: why data structures? We then move on to cover the relationship between data structures and algorithms, followed by an analysis and evaluation of algorithms. We introduce the fundamentals of data structures, such as lists, stacks, queues, and dictionaries, using real-world examples. We also cover topics such as indexing, sorting, and searching in depth. Later on, you will be exposed to advanced topics such as graph data structures, dynamic programming, and randomized algorithms. You will come to appreciate the intricacies of high performance and scalable programming using R. We also cover special R data structures such as vectors, data frames, and atomic vectors. With this easy-to-read book, you will be able to understand the power of linked lists, double linked lists, and circular linked lists. We will also explore the application of binary search and will go in depth into sorting algorithms such as bubble sort, selection sort, insertion sort, and merge sort. Style and approach This easy-to-read book with its fast-paced nature will improve the productivity of an R programmer and improve the performance of R applications. It is packed with real-world examples.


Data Structures and Algorithms with Scala

Data Structures and Algorithms with Scala

Author: Bhim P. Upadhyaya

Publisher: Springer

Published: 2019-02-26

Total Pages: 154

ISBN-13: 3030125610

DOWNLOAD EBOOK

This practically-focused textbook presents a concise tutorial on data structures and algorithms using the object-functional language Scala. The material builds upon the foundation established in the title Programming with Scala: Language Exploration by the same author, which can be treated as a companion text for those less familiar with Scala. Topics and features: discusses data structures and algorithms in the form of design patterns; covers key topics on arrays, lists, stacks, queues, hash tables, binary trees, sorting, searching, and graphs; describes examples of complete and running applications for each topic; presents a functional approach to implementations for data structures and algorithms (excepting arrays); provides numerous challenge exercises (with solutions), encouraging the reader to take existing solutions and improve upon them; offers insights from the author’s extensive industrial experience; includes a glossary, and an appendix supplying an overview of discrete mathematics. Highlighting the techniques and skills necessary to quickly derive solutions to applied problems, this accessible text will prove invaluable to time-pressured students and professional software engineers.


Python Data Structures and Algorithms

Python Data Structures and Algorithms

Author: Benjamin Baka

Publisher: Packt Publishing Ltd

Published: 2017-05-30

Total Pages: 303

ISBN-13: 1786465337

DOWNLOAD EBOOK

Implement classic and functional data structures and algorithms using Python About This Book A step by step guide, which will provide you with a thorough discussion on the analysis and design of fundamental Python data structures. Get a better understanding of advanced Python concepts such as big-o notation, dynamic programming, and functional data structures. Explore illustrations to present data structures and algorithms, as well as their analysis, in a clear, visual manner. Who This Book Is For The book will appeal to Python developers. A basic knowledge of Python is expected. What You Will Learn Gain a solid understanding of Python data structures. Build sophisticated data applications. Understand the common programming patterns and algorithms used in Python data science. Write efficient robust code. In Detail Data structures allow you to organize data in a particular way efficiently. They are critical to any problem, provide a complete solution, and act like reusable code. In this book, you will learn the essential Python data structures and the most common algorithms. With this easy-to-read book, you will be able to understand the power of linked lists, double linked lists, and circular linked lists. You will be able to create complex data structures such as graphs, stacks and queues. We will explore the application of binary searches and binary search trees. You will learn the common techniques and structures used in tasks such as preprocessing, modeling, and transforming data. We will also discuss how to organize your code in a manageable, consistent, and extendable way. The book will explore in detail sorting algorithms such as bubble sort, selection sort, insertion sort, and merge sort. By the end of the book, you will learn how to build components that are easy to understand, debug, and use in different applications. Style and Approach The easy-to-read book with its fast-paced nature will improve the productivity of Python programmers and improve the performance of Python applications.


Java 9 Data Structures and Algorithms

Java 9 Data Structures and Algorithms

Author: Debasish Ray Chawdhuri

Publisher: Packt Publishing Ltd

Published: 2017-04-28

Total Pages: 340

ISBN-13: 1785888072

DOWNLOAD EBOOK

Gain a deep understanding of the complexity of data structures and algorithms and discover the right way to write more efficient code About This Book This book provides complete coverage of reactive and functional data structures Based on the latest version of Java 9, this book illustrates the impact of new features on data structures Gain exposure to important concepts such as Big-O Notation and Dynamic Programming Who This Book Is For This book is for Java developers who want to learn about data structures and algorithms. Basic knowledge of Java is assumed. What You Will Learn Understand the fundamentals of algorithms, data structures, and measurement of complexity Find out what general purpose data structures are, including arrays, linked lists, double ended linked lists, and circular lists Get a grasp on the basics of abstract data types—stack, queue, and double ended queue See how to use recursive functions and immutability while understanding and in terms of recursion Handle reactive programming and its related data structures Use binary search, sorting, and efficient sorting—quicksort and merge sort Work with the important concept of trees and list all nodes of the tree, traversal of tree, search trees, and balanced search trees Apply advanced general purpose data structures, priority queue-based sorting, and random access immutable linked lists Gain a better understanding of the concept of graphs, directed and undirected graphs, undirected trees, and much more In Detail Java 9 Data Structures and Algorithms covers classical, functional, and reactive data structures, giving you the ability to understand computational complexity, solve problems, and write efficient code. This book is based on the Zero Bug Bounce milestone of Java 9. We start off with the basics of algorithms and data structures, helping you understand the fundamentals and measure complexity. From here, we introduce you to concepts such as arrays, linked lists, as well as abstract data types such as stacks and queues. Next, we'll take you through the basics of functional programming while making sure you get used to thinking recursively. We provide plenty of examples along the way to help you understand each concept. You will get the also get a clear picture of reactive programming, binary searches, sorting, search trees, undirected graphs, and a whole lot more! Style and approach This book will teach you about all the major algorithms in a step-by-step manner. Special notes on the Big-O Notation and its impact on algorithms will give you fresh insights.


Algorithms

Algorithms

Author: Fethi Rabhi

Publisher: Addison Wesley

Published: 1999

Total Pages: 235

ISBN-13: 9780201596045

DOWNLOAD EBOOK

A student introduction to the design of algorithms for problem solving. Written from a functional programming perspective, the text should appeal to anyone studying algorithms. Included are end-of-chapter exercises and bibliographic references.


Hands-On Data Structures and Algorithms with Rust

Hands-On Data Structures and Algorithms with Rust

Author: Claus Matzinger

Publisher: Packt Publishing Ltd

Published: 2019-01-25

Total Pages: 306

ISBN-13: 1788991494

DOWNLOAD EBOOK

Design and implement professional level programs by exploring modern data structures and algorithms in Rust. Key FeaturesUse data structures such as arrays, stacks, trees, lists and graphs with real-world examplesLearn the functional and reactive implementations of the traditional data structuresExplore illustrations to present data structures and algorithms, as well as their analysis, in a clear, visual manner.Book Description Rust has come a long way and is now utilized in several contexts. Its key strengths are its software infrastructure and resource-constrained applications, including desktop applications, servers, and performance-critical applications, not forgetting its importance in systems' programming. This book will be your guide as it takes you through implementing classic data structures and algorithms in Rust, helping you to get up and running as a confident Rust programmer. The book begins with an introduction to Rust data structures and algorithms, while also covering essential language constructs. You will learn how to store data using linked lists, arrays, stacks, and queues. You will also learn how to implement sorting and searching algorithms. You will learn how to attain high performance by implementing algorithms to string data types and implement hash structures in algorithm design. The book will examine algorithm analysis, including Brute Force algorithms, Greedy algorithms, Divide and Conquer algorithms, Dynamic Programming, and Backtracking. By the end of the book, you will have learned how to build components that are easy to understand, debug, and use in different applications. What you will learnDesign and implement complex data structures in RustAnalyze, implement, and improve searching and sorting algorithms in RustCreate and use well-tested and reusable components with RustUnderstand the basics of multithreaded programming and advanced algorithm designBecome familiar with application profiling based on benchmarking and testingExplore the borrowing complexity of implementing algorithmsWho this book is for This book is for developers seeking to use Rust solutions in a practical/professional setting; who wants to learn essential Data Structures and Algorithms in Rust. It is for developers with basic Rust language knowledge, some experience in other programming languages is required.


Learning F# Functional Data Structures and Algorithms

Learning F# Functional Data Structures and Algorithms

Author: Adnan Masood

Publisher:

Published: 2015

Total Pages: 206

ISBN-13: 9781783558476

DOWNLOAD EBOOK

If you have just started your adventure with F#, then this book will help you take the right steps to become a successful F# coder. An intermediate knowledge of imperative programming concepts, and a basic understanding of the algorithms and data structures in .NET environments using the C# language and BCL (Base Class Library), would be helpful.


PHP 7 Data Structures and Algorithms

PHP 7 Data Structures and Algorithms

Author: Mizanur Rahman

Publisher: Packt Publishing Ltd

Published: 2017-05-26

Total Pages: 330

ISBN-13: 1786463571

DOWNLOAD EBOOK

Increase your productivity by implementing data structures About This Book Gain a complete understanding of data structures using a simple approach Analyze algorithms and learn when you should apply each solution Explore the true potential of functional data structures Who This Book Is For This book is for those who want to learn data structures and algorithms with PHP for better control over application-solution, efficiency, and optimization. A basic understanding of PHP data types, control structures, and other basic features is required What You Will Learn Gain a better understanding of PHP arrays as a basic data structure and their hidden power Grasp how to analyze algorithms and the Big O Notation Implement linked lists, double linked lists, stack, queues, and priority queues using PHP Work with sorting, searching, and recursive algorithms Make use of greedy, dynamic, and pattern matching algorithms Implement tree, heaps, and graph algorithms Apply PHP functional data structures and built-in data structures and algorithms In Detail PHP has always been the the go-to language for web based application development, but there are materials and resources you can refer to to see how it works. Data structures and algorithms help you to code and execute them effectively, cutting down on processing time significantly. If you want to explore data structures and algorithms in a practical way with real-life projects, then this book is for you. The book begins by introducing you to data structures and algorithms and how to solve a problem from beginning to end using them. Once you are well aware of the basics, it covers the core aspects like arrays, listed lists, stacks and queues. It will take you through several methods of finding efficient algorithms and show you which ones you should implement in each scenario. In addition to this, you will explore the possibilities of functional data structures using PHP and go through advanced algorithms and graphs as well as dynamic programming. By the end, you will be confident enough to tackle both basic and advanced data structures, understand how they work, and know when to use them in your day-to-day work Style and approach An easy-to-follow guide full of examples of implementation of data structures and real world examples to solve the problems faced. Each topic is first explained in general terms and then implemented using step by step explanation so that developers can understand each part of the discussion without any problem.