دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: نویسندگان: Atul S. Khot, Raju Kumar Mishra سری: ISBN (شابک) : 9781785888731 ناشر: Packt سال نشر: 2017 تعداد صفحات: 305 زبان: english فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 5 مگابایت
در صورت تبدیل فایل کتاب Learning Functional Data Structures and Algorithms به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب یادگیری ساختارها و الگوریتم های داده عملکردی نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
ساختارهای داده عملکردی و الگوریتمها را برای برنامههای کاربردی خود بیاموزید درباره این کتاب*در حال حرکت از برنامهنویسی شیگرا به برنامهنویسی تابعی؟ این کتاب به شما کمک میکند تا با برنامهنویسی تابعی شروع کنید.*توضیحات ساده در مورد موضوعات کاربردی به شما کمک میکند تا با ساختارهای داده عملکردی شروع کنید. Who This Book Is ForThis کتاب برای کسانی است که در زبان های برنامه نویسی تابعی تجربه دارند. ساختارهای داده در این کتاب به زبانهای Scala و Clojure نوشته شدهاند، اما کاربران سایر زبانهای کاربردی نیز میتوانند از الگوریتمها استفاده کنند و از کتاب بهرهمند شوند. به عنوان زمینه ای که معمولاً در آن استفاده می شود *به پیچیدگی های زمان اجرا و فضا با نماد O نگاهی بیندازید*درکی از پیاده سازی سنتی/اجباری جاوا کسب کنید*نسخه کاملاً کاربردی را در Scala و Clojure درک کنید* تمرین عملی را انجام دهید با مفاهیم Scala و Clojure*ببینید که چگونه ساختارهای داده Scala و Clojure پیاده سازی می شوند*موضوعات اساسی تغییرناپذیری، اشتراک ساختاری، ارزیابی تنبلی، و بازگشت، و همچنین نحوه کار آنها با یکدیگر را بررسی کنید *بهترین شیوه ها و اصطلاحات Scala و Clojure را به دست آورید ساختارهای داده DetailFunctional قدرت بهبود پایگاه کد یک برنامه کاربردی و بهبود کارایی را دارند. با ظهور برنامهنویسی تابعی و با تبدیل شدن زبانهای کاربردی قدرتمند مانند Scala و Clojure به بخشی از برنامههای مهم سازمانی، ساختارهای داده عملکردی جایگاه مهمی در جعبه ابزار توسعهدهنده پیدا کردهاند. الگوریتمهای قدرتمندی وجود دارند که میتوانید از آنها استفاده کنید و به محض اینکه در پارادایم عملکردی نوشته شدند، از آنها بهره ببرید. این کتاب تمام الگوریتمهای اصلی را برای بهبود درک شما از برنامهنویسی عملکردی و ساختارهای داده پوشش میدهد. این برنامه با تجدید و تجمیع برنامهنویسی کاربردی آغاز میشود و طعم آن را در Scala و Clojure خواهید دید. در مرحله بعد، با مفهوم معایب و اینکه چگونه به اشتراک گذاری ساختاری ساختارهای داده تغییرناپذیر را کارآمد و کاربردی می کند آشنا خواهید شد. شما یاد خواهید گرفت که الگوریتم ها را با آرایه ها پیاده سازی کنید و همچنین نگاهی به VList با استفاده از Scala و Clojure خواهیم انداخت. همچنین تکنیک های مختلفی برای نوشتن ساختارهای داده عملکردی مشاهده خواهید کرد و نحوه برخورد با ساختارهای داده اصلی مانند لیست ها، صف ها، پشته ها را خواهید دید. ، و غیره. ما به جزئیات در مورد ارزیابی تنبل برای این ساختارهای داده خواهیم پرداخت. در پایان کتاب، شما قادر خواهید بود ساختارهای داده عملکردی و الگوریتم های کارآمد را برای برنامه های خود بنویسید.
Learn functional data structures and algorithms for your applicationsAbout 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.*Get hands-on practice of Scala and Clojure to get the most out of functional programming.Who This Book Is ForThis book is for those who have some experience in functional programming languages. The data structures in this book are written in Scala and Clojure, but the users of other functional languages will also be able to use the algorithms and benefit from the book.What You Will Learn*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*Get an understanding of the traditional/imperative Java implementation*Grasp the purely functional version in Scala and Clojure*Get hands-on practice with the concepts of Scala and Clojure*See how Scala and Clojure data structures are implemented*Explore the basic themes of immutability, structural sharing, lazy evaluation, and recursion, as well as how they work together*Gain Scala and Clojure best practices and idiomsIn DetailFunctional 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 and Clojure becoming part of important enterprise applications, functional data structures have gained an important place in the developer toolkit. There are powerful algorithms that you can use and benefit from once they are written in the functional paradigm.This book covers all the major algorithms to improve your understanding of functional programming and data structures. It begins with a refresher and consolidation of what functional programming is and you'll get a taste of it in Scala and Clojure. Next, you'll get to know about the concept of cons and how structural sharing makes immutable data structures efficient and practical. You will learn to implement algorithms with arrays and we will also take a look at VList using Scala and Clojure.You will also see various techniques to write functional data structures and will discover how to deal with original data structures such as lists, queues, heaps, and so on. We will go into detail about lazy evaluation for these data structures.By the end of the book, you will be able to write efficient functional data structures and algorithms for your applications.
Contents......Page 3
Preface......Page 8
Why Functional Programming......Page 15
The imperative way......Page 16
Higher level of abstraction......Page 17
Functional programming is declarative......Page 20
No boilerplate......Page 21
Higher order functions......Page 23
Controlling state changes......Page 26
Recursion aids immutability......Page 28
Copy-on-write......Page 30
Laziness and deferred execution......Page 31
Composing functions......Page 33
Summary......Page 36
The Big O notation......Page 37
Space/time trade-off......Page 40
Referential transparency......Page 47
Vectors versus lists......Page 49
Complexities and collections......Page 55
Summary......Page 62
Lists......Page 63
First steps......Page 64
List head and tail......Page 68
Drop elements......Page 71
Concatenating lists......Page 73
Persistent data structures......Page 76
Tail call optimization......Page 77
List append......Page 79
List prepend......Page 81
Getting value at index......Page 83
Modifying a list value......Page 85
Summary......Page 87
Binary Trees......Page 88
Node definitions......Page 89
Building the tree......Page 91
Comparing trees......Page 96
The accumulator idiom......Page 102
Binary Search Trees......Page 105
Exercising it......Page 109
Summary......Page 110
Binary numbers......Page 111
Greedy algorithms and backtracking......Page 120
Summary......Page 126
Graph Algorithms......Page 127
Reversing a list......Page 128
Graph algorithms......Page 130
Cycle detection......Page 139
Summary......Page 141
Random Access Lists......Page 143
Incrementing a binary number......Page 144
List of tree roots......Page 147
Summary......Page 159
Queues......Page 161
Understanding FIFO queues......Page 162
Functional FIFO queues......Page 163
Invariants......Page 165
Implementing a priority queue......Page 166
Understanding priority queues/heaps......Page 168
Leftist trees......Page 171
Functional heaps......Page 173
Summary......Page 180
Streams, Laziness & Algorithms......Page 182
Program evaluation......Page 183
Argument evaluation......Page 185
Memoization – remembering past results......Page 193
Streams......Page 199
Some algorithms on stream......Page 208
Summary......Page 215
Being Lazy - Queues & Deques......Page 216
Imperative implementations......Page 218
Amortization......Page 219
Problem with queues......Page 220
Strict versus lazy......Page 221
Streams......Page 222
Streams meet queues......Page 224
A sense of balance......Page 227
Amortized deques......Page 228
Summary......Page 232
Red-Black Trees......Page 234
Terminology......Page 235
The concept of rotation......Page 236
Red-Black trees......Page 238
Inserting a node......Page 241
Verifying the transformation......Page 251
Complexity......Page 252
Summary......Page 253
Binomial Heaps......Page 254
Binomial trees......Page 256
A binomial heap......Page 260
Binary number equivalence......Page 266
Summary......Page 272
Sorting......Page 273
Stable and unstable sorting......Page 274
Bubble sort......Page 276
Selection sort......Page 281
Insertion sort......Page 285
Merge sort......Page 289
Quick sort......Page 296
Summary......Page 300
Index......Page 301