Get an introduction to functional data structures using R and write more effective code and gain performance for your programs. This book teaches you workarounds because data in functional languages is not mutable: for example you'll learn how to change variable-value bindings by modifying environments, which can be exploited to emulate pointers and implement traditional data structures. You'll also see how, by abandoning traditional data structures, you can manipulate structures by building new versions rather than modifying them. You'll discover how these so-called functional data structures are different from the traditional data structures you might know, but are worth understanding to do serious algorithmic programming in a functional language such as R.
By the end of Functional Data Structures in R
, you'll understand the choices to make in order to most effectively work with data structures when you cannot modify the data itself. These techniques are especially applicable for algorithmic development important in big data, finance, and other data science applications.
What You'll Learn
Who This Book Is For
- Carry out algorithmic programming in R
- Use abstract data structures
- Work with both immutable and persistent data
- Emulate pointers and implement traditional data structures in R
- Build new versions of traditional data structures that are known
Experienced or advanced programmers with at least a comfort level with R. Some experience with data structures recommended.
Thomas Mailund is an associate professor in bioinformatics at Aarhus University, Denmark. He has a background in math and computer science. For the last decade, his main focus has been on genetics and evolutionary studies, particularly comparative genomics, speciation, and gene flow between emerging species. He has published Beginning Data Science in R, Functional Programming in R and Metaprogramming in R with Apress as well as other books.
1: Abstract Data Structures2: Immutable and Persistent Data3: Bags, Stacks, and Queues4: Heaps5: Sets and Search Trees6: ConclusionsBibliography