University of OXford & University of camBRiDGE

...is a collective term for characteristics that the two institutions share.

Advanced Functional Data Structures and Algorithms

by Raju Kumar Mishra, Atul S. Khot
Publisher: Packt Publishing
Release Date: August 2017
ISBN: 9781788390477
Running time: 3:28:41
Topic: Software Development
Scale: 17x50mb
Downloads: (■) Included ( ) Without

Lecture Date: 09/2017
Lecture Link: https://goo.gl/gXkrDb

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

| About This Video

| Bridge your transition from object-oriented programming to
| functional programming
| Easy-to-understand explanations of practical topics will help you
| get started with functional data structures
| Illustrative diagrams will explain the algorithms in detail
| Experience hands-on practice in Scala to get the most out of
| functional programming.
| In Detail

| 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.