Advanced Functional Data Structures and Algorithms [Video]

Preview in Mapt

Advanced Functional Data Structures and Algorithms [Video]

Atul S. Khot, Raju Kumar Mishra

Get acquainted with complex data structures and algorithms with simple functional implementations

Quick links: > What will you learn?> Table of content

Mapt Subscription
FREE
$29.99/m after trial
Video
$106.25
RRP $124.99
Save 14%
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$0.00
$106.25
$29.99 p/m after trial
RRP $124.99
Subscription
Video
Start 14 Day Trial

Frequently bought together


Advanced Functional Data Structures and Algorithms [Video] Book Cover
Advanced Functional Data Structures and Algorithms [Video]
$ 124.99
$ 106.25
Learn Algorithms and Data Structures in Java for Day-to-Day Applications [Video] Book Cover
Learn Algorithms and Data Structures in Java for Day-to-Day Applications [Video]
$ 124.99
$ 106.25
Buy 2 for $35.00
Save $214.98
Add to Cart

Video Details

ISBN 139781788390477
Course Length3 hours and 28 minutes

Video Description

Algorithms and datastructures are fundamentals in computer programming. Functional data structures have the power to improve the codebase of an application and improve its efficiency. With the advent of functional programming and 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 therefore are very appealing to write robust concurrent programs. But how do we express traditional algorithms in a functional setting? Won’t we end up copying too much? Do we trade performance for versioned data structures? This course attempts to answer these questions by looking at functional implementations of traditional algorithms.

The course begins by showing you the functioning of lists, the workhorse data type for most functional languages. We’ll show you what structural sharing means and how it helps to make immutable data structures efficient and practical.

While writing code, we use ADTs (abstract data types) such as Stacks, Queues, Trees, and Graphs. You’ll see how these ADTs are implemented in a functional setting. We look at implementation techniques such as amortization and lazy evaluation to ensure efficiency. By the end of the course, you’ll be able to write efficient functional data structures and algorithms for your applications.

Style and Approach

The step-by-step explanation of topics will help you enhance your knowledge about functional programming and deliver better applications. You’ll learn by doing with hands-on code snippets that give you practical experience of the subject.

Table of Contents

Graph Algorithms
The Course Overview
Reversing a List
Exploring More About Graph Algorithms
Cycle Detection
Random Access Lists
Incrementing a Binary Number
List of Tree Roots
Queues
FIFO Queues
Invariants
Priority Queue
Leftist Trees
Functional Heaps
Streams, Laziness, and Algorithms
Program Evaluation
Argument Evaluation
Memoization – Remembering Past Results
Streams
Some Algorithms on Stream
Being Lazy – Queues and Deques
Imperative Implementations and Amortization
Strict Versus Lazy
Streams
Amortized Deques
Red-Black Trees
Concept of Red-Black Trees
Working with Red-Black Trees
Verifying the Transformation
Binomial Heaps
Binomial Trees
A Binomial Heap
Binary Number Equivalence
Sorting
Stable and Unstable Sorting
Bubble Sort
Selection Sort
Insertion Sort
Merge Sort
Quick Sort

What You Will Learn

  • Understand how to think in the functional paradigm
  • Build cost-efficient applications
  • Explore important algorithms for ordering dependencies
  • See common data structures and the associated algorithms, and the context they are commonly used in
  • 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
  • Understand functional features such as lazy evaluation and recursion used to implement efficient algorithms
  • Get to know Scala’s best practices and idioms

Authors

Table of Contents

Graph Algorithms
The Course Overview
Reversing a List
Exploring More About Graph Algorithms
Cycle Detection
Random Access Lists
Incrementing a Binary Number
List of Tree Roots
Queues
FIFO Queues
Invariants
Priority Queue
Leftist Trees
Functional Heaps
Streams, Laziness, and Algorithms
Program Evaluation
Argument Evaluation
Memoization – Remembering Past Results
Streams
Some Algorithms on Stream
Being Lazy – Queues and Deques
Imperative Implementations and Amortization
Strict Versus Lazy
Streams
Amortized Deques
Red-Black Trees
Concept of Red-Black Trees
Working with Red-Black Trees
Verifying the Transformation
Binomial Heaps
Binomial Trees
A Binomial Heap
Binary Number Equivalence
Sorting
Stable and Unstable Sorting
Bubble Sort
Selection Sort
Insertion Sort
Merge Sort
Quick Sort

Video Details

ISBN 139781788390477
Course Length3 hours and 28 minutes
Read More

Read More Reviews

Recommended for You

Learn Algorithms and Data Structures in Java for Day-to-Day Applications [Video] Book Cover
Learn Algorithms and Data Structures in Java for Day-to-Day Applications [Video]
$ 124.99
$ 106.25
Advanced Data Structures and Algorithms in Java 9 [Video] Book Cover
Advanced Data Structures and Algorithms in Java 9 [Video]
$ 124.99
$ 106.25
Functional Data Structures and Algorithms [Video] Book Cover
Functional Data Structures and Algorithms [Video]
$ 124.99
$ 106.25
Basic Data Structures and Algorithms in Java 9 [Video] Book Cover
Basic Data Structures and Algorithms in Java 9 [Video]
$ 124.99
$ 106.25
Basic Statistics and Data Mining for Data Science [Video] Book Cover
Basic Statistics and Data Mining for Data Science [Video]
$ 124.99
$ 106.25
Beginners' guide to Cloud Computing and OpenStack [Video] Book Cover
Beginners' guide to Cloud Computing and OpenStack [Video]
$ 19.99
$ 17.00