Clojure Data Structures and Algorithms Cookbook

 
9781785281457: Clojure Data Structures and Algorithms Cookbook
View all copies of this ISBN edition:
 
 

25 recipes to deeply understand and implement advanced algorithms in Clojure

25 recipes to deeply understand and implement advanced algorithms in Clojure

About This Book

  • Explore various advanced algorithms and learn how they are used to address many real-world computing challenges
  • Construct elegant solutions using impressive techniques including zippers, parsing, and pattern matching
  • Solve complex problems by adopting innovative approaches such as logic or asynchronous programming

Who This Book Is For

This book is for intermediate Clojure developers who can read and write in this language quite comfortably. Besides, it is assumed that you have some knowledge of how to set up Clojure projects, include dependencies, how to run REPLs, and so on through Leiningen and Figwheel. No prior awareness of any of the algorithms covered in this book is needed, and, when appropriate, pointers are given to the explanation material about any theory related to them.

What You Will Learn

  • Explore alternative uses of classical data structures such as arrays and linked lists
  • Explore advanced machine learning and optimization techniques
  • Utilize the Clojure libraries, such as Instaparse for parsing, core.match for pattern matching, clojure.zip for zippers, and clojure.matrix for matrix operations
  • Learn logic programming through the core.logic library
  • Master asynchronous programming using the core.async library
  • Observe transducers while resolving real-world use cases

In Detail

Clojure is a highly pragmatic language with efficient and easy data manipulation capabilities. This provides us with an opportunity to easily explore many challenging and varied algorithmic topics, while using some extremely creative methods.

In this book, we'll discover alternative uses for classical data structures (arrays, linked lists, and trees), cover some machine learning and optimization techniques, and even delve into some innovative ways of approaching algorithmic problem solving, such as logic programming, asynchronous programming or the usage of advanced functional constructs, namely transducers or the continuation passing style.

"synopsis" may belong to another edition of this title.

About the Author:

Rafik Naccache

Rafik Naccache is a Tunisian, who is experienced in software architecture and is an emergent technology enthusiast. He earned his bachelor's degree in computer science engineering from the University of Tunis in 2001. Rafik fell in love with Clojure back in 2012 and has been developing it professionally since 2013. He has occupied various positions in the telecom and banking sectors and has launched a few innovative start-ups on the Internet, in which he was able to deploy Clojure apps. He also founded the Tunisian Clojure enthusiasts community. He contributes to open source projects such as Cryogen (https://github.com/cryogen-project/cryogen/graphs/contributors) and Milestones (https://github.com/automagictools/milestones).

"About this title" may belong to another edition of this title.

Buy New View Book
List Price: US$ 32.99
US$ 51.46

Convert currency

Shipping: FREE
From United Kingdom to U.S.A.

Destination, rates & speeds

Add to Basket

Top Search Results from the AbeBooks Marketplace

1.

Rafik Naccache
Published by Packt Publishing Limited, United Kingdom (2015)
ISBN 10: 1785281453 ISBN 13: 9781785281457
New Paperback Quantity Available: 10
Print on Demand
Seller:
The Book Depository
(London, United Kingdom)
Rating
[?]

Book Description Packt Publishing Limited, United Kingdom, 2015. Paperback. Condition: New. Language: English . Brand New Book ***** Print on Demand *****.25 recipes to deeply understand and implement advanced algorithms in Clojure About This Book * Explore various advanced algorithms and learn how they are used to address many real-world computing challenges * Construct elegant solutions using impressive techniques including zippers, parsing, and pattern matching * Solve complex problems by adopting innovative approaches such as logic or asynchronous programming In Detail Data-structures and algorithms often cross your path when you compress files, compile programs, access databases, or simply use your favourite text editor. Understanding and implementing them can be daunting. Curious learners and industrial developers can find these complex, especially if they focus on the detailed implementation of these data structures. Clojure is a highly pragmatic and expressive language with efficient and easy data manipulation capabilities. As such, it is great for implementing these algorithms. By abstracting away a great share of the unnecessary complexity resulting from implementation, Clojure and its contrib libraries will help you address various algorithmic challenges, making your data exploration both profitable and enjoyable. Through 25 recipes, you ll explore advanced algorithms and data-structures, well served by a sound Clojure implementation. This book opens with an exploration of alternative uses of the array data-structure, covering LZ77 compression, drawing fractals using Pascal s triangles, simulating a multi-threaded program execution, and implementing a call-stack winding and un-winding operations. The book elaborates on linked lists, showing you how to construct doubly linked ones, speed up search times over the elements of such structures, use a linked-list as the foundation of a shift-reduce parser, and implement an immutable linked-list using skew binary numbers representation. After that, the tree data-structure is explored, focusing on building self-balancing Splay Trees, designing a B-Tree backing-up an efficient key-value data-store, constructing an undo capable Rope, and showing how Tries can make for an auto-completing facility. Next, some optimization and machine learning techniques are discussed, namely for building a co-occurrence-based recommendation engine, using branch-and-bound to optimize integral cost and profit problems, using Dijkstra s algorithm to determine optimal paths and summarizing texts using the LexRank algorithm. Particular attention is given to logic programming, you will learn to use this to discover interesting relations between social website data, by designing a simple type inferencer for a mini Java-like language, and by building a simple checkers game engine. Asynchronous programming will be addressed and you will design a concurrent web-crawler, an interactive HTML5 game, and an online taxi booking platform. Finally, you ll explore advanced cases for higher order functions in Clojure while implementing a recursive descent parser using efficient mutual resucrsion, devising a mini resusable firewall simulator thanks to Clojure 1.7 new tansducers feature or building a simple unification engine with the help of Continuation Passing Style. What You Will Learn * Explore alternative uses of classical data-structures like arrays and linked-lists * Discover advanced types of tree data-structures * Explore advanced machine learning and optimization techniques * Utilise powerful Clojure libraries, such as Instaparse for parsing, core.match for pattern matching, clojure.zip for zippers, and clojure.matrix for matrix operations * Learn logic programming through the usage of the library core.logic * Master asynchronous programming using the core.async library * See the transducers in action while resolving real-world use-cases Who This Book Is For If you are an experienced Clojure developer, longing to take your knowledge to the next level by discovering and using advanced algorithms. Seller Inventory # AAV9781785281457

More information about this seller | Contact this seller

Buy New
US$ 51.46
Convert currency

Add to Basket

Shipping: FREE
From United Kingdom to U.S.A.
Destination, rates & speeds

2.

Rafik Naccache
Published by Packt Publishing Limited, United Kingdom (2015)
ISBN 10: 1785281453 ISBN 13: 9781785281457
New Paperback Quantity Available: 10
Print on Demand
Seller:
Book Depository International
(London, United Kingdom)
Rating
[?]

Book Description Packt Publishing Limited, United Kingdom, 2015. Paperback. Condition: New. Language: English . Brand New Book ***** Print on Demand *****. 25 recipes to deeply understand and implement advanced algorithms in Clojure About This Book * Explore various advanced algorithms and learn how they are used to address many real-world computing challenges * Construct elegant solutions using impressive techniques including zippers, parsing, and pattern matching * Solve complex problems by adopting innovative approaches such as logic or asynchronous programming In Detail Data-structures and algorithms often cross your path when you compress files, compile programs, access databases, or simply use your favourite text editor. Understanding and implementing them can be daunting. Curious learners and industrial developers can find these complex, especially if they focus on the detailed implementation of these data structures. Clojure is a highly pragmatic and expressive language with efficient and easy data manipulation capabilities. As such, it is great for implementing these algorithms. By abstracting away a great share of the unnecessary complexity resulting from implementation, Clojure and its contrib libraries will help you address various algorithmic challenges, making your data exploration both profitable and enjoyable. Through 25 recipes, you ll explore advanced algorithms and data-structures, well served by a sound Clojure implementation. This book opens with an exploration of alternative uses of the array data-structure, covering LZ77 compression, drawing fractals using Pascal s triangles, simulating a multi-threaded program execution, and implementing a call-stack winding and un-winding operations. The book elaborates on linked lists, showing you how to construct doubly linked ones, speed up search times over the elements of such structures, use a linked-list as the foundation of a shift-reduce parser, and implement an immutable linked-list using skew binary numbers representation. After that, the tree data-structure is explored, focusing on building self-balancing Splay Trees, designing a B-Tree backing-up an efficient key-value data-store, constructing an undo capable Rope, and showing how Tries can make for an auto-completing facility. Next, some optimization and machine learning techniques are discussed, namely for building a co-occurrence-based recommendation engine, using branch-and-bound to optimize integral cost and profit problems, using Dijkstra s algorithm to determine optimal paths and summarizing texts using the LexRank algorithm. Particular attention is given to logic programming, you will learn to use this to discover interesting relations between social website data, by designing a simple type inferencer for a mini Java-like language, and by building a simple checkers game engine. Asynchronous programming will be addressed and you will design a concurrent web-crawler, an interactive HTML5 game, and an online taxi booking platform. Finally, you ll explore advanced cases for higher order functions in Clojure while implementing a recursive descent parser using efficient mutual resucrsion, devising a mini resusable firewall simulator thanks to Clojure 1.7 new tansducers feature or building a simple unification engine with the help of Continuation Passing Style. What You Will Learn * Explore alternative uses of classical data-structures like arrays and linked-lists * Discover advanced types of tree data-structures * Explore advanced machine learning and optimization techniques * Utilise powerful Clojure libraries, such as Instaparse for parsing, core.match for pattern matching, clojure.zip for zippers, and clojure.matrix for matrix operations * Learn logic programming through the usage of the library core.logic * Master asynchronous programming using the core.async library * See the transducers in action while resolving real-world use-cases Who This Book Is For If you are an experienced Clojure developer, longing to take your knowledge to the next level by discovering and using advanced algorithm. Seller Inventory # AAV9781785281457

More information about this seller | Contact this seller

Buy New
US$ 53.86
Convert currency

Add to Basket

Shipping: FREE
From United Kingdom to U.S.A.
Destination, rates & speeds

3.

Naccache, Rafik
Published by Packt Publishing Limited (2015)
ISBN 10: 1785281453 ISBN 13: 9781785281457
New Quantity Available: > 20
Print on Demand
Seller:
Pbshop
(Wood Dale, IL, U.S.A.)
Rating
[?]

Book Description Packt Publishing Limited, 2015. PAP. Condition: New. New Book. Shipped from US within 10 to 14 business days. THIS BOOK IS PRINTED ON DEMAND. Established seller since 2000. Seller Inventory # IQ-9781785281457

More information about this seller | Contact this seller

Buy New
US$ 49.88
Convert currency

Add to Basket

Shipping: US$ 3.99
Within U.S.A.
Destination, rates & speeds

4.

Naccache, Rafik
Published by Packt Publishing (2016)
ISBN 10: 1785281453 ISBN 13: 9781785281457
New Paperback Quantity Available: 1
Print on Demand
Seller:
Ria Christie Collections
(Uxbridge, United Kingdom)
Rating
[?]

Book Description Packt Publishing, 2016. Paperback. Condition: New. PRINT ON DEMAND Book; New; Publication Year 2016; Not Signed; Fast Shipping from the UK. No. book. Seller Inventory # ria9781785281457_lsuk

More information about this seller | Contact this seller

Buy New
US$ 49.68
Convert currency

Add to Basket

Shipping: US$ 5.12
From United Kingdom to U.S.A.
Destination, rates & speeds

5.

Rafik Naccache
Published by Packt Publishing - ebooks Account (2015)
ISBN 10: 1785281453 ISBN 13: 9781785281457
New Softcover Quantity Available: 1
Seller:
Irish Booksellers
(Portland, ME, U.S.A.)
Rating
[?]

Book Description Packt Publishing - ebooks Account, 2015. Condition: New. book. Seller Inventory # M1785281453

More information about this seller | Contact this seller

Buy New
US$ 52.62
Convert currency

Add to Basket

Shipping: US$ 3.27
Within U.S.A.
Destination, rates & speeds

6.

Rafik Naccache
Published by Packt Publishing Limited (2015)
ISBN 10: 1785281453 ISBN 13: 9781785281457
New Quantity Available: > 20
Print on Demand
Seller:
Books2Anywhere
(Fairford, GLOS, United Kingdom)
Rating
[?]

Book Description Packt Publishing Limited, 2015. PAP. Condition: New. New Book. Delivered from our UK warehouse in 3 to 5 business days. THIS BOOK IS PRINTED ON DEMAND. Established seller since 2000. Seller Inventory # LQ-9781785281457

More information about this seller | Contact this seller

Buy New
US$ 46.71
Convert currency

Add to Basket

Shipping: US$ 11.94
From United Kingdom to U.S.A.
Destination, rates & speeds

7.

Naccache, Rafik
Published by Packt Publishing 8/23/2015 (2015)
ISBN 10: 1785281453 ISBN 13: 9781785281457
New Paperback or Softback Quantity Available: 10
Seller:
BargainBookStores
(Grand Rapids, MI, U.S.A.)
Rating
[?]

Book Description Packt Publishing 8/23/2015, 2015. Paperback or Softback. Condition: New. Clojure Data Structures and Algorithms Cookbook. Book. Seller Inventory # BBS-9781785281457

More information about this seller | Contact this seller

Buy New
US$ 63.23
Convert currency

Add to Basket

Shipping: FREE
Within U.S.A.
Destination, rates & speeds

8.

Rafik Naccache
ISBN 10: 1785281453 ISBN 13: 9781785281457
New Quantity Available: 5
Seller:
ReadWhiz
(Portland, OR, U.S.A.)
Rating
[?]

Book Description Condition: New. Seller Inventory # ria9781785281457_ing

More information about this seller | Contact this seller

Buy New
US$ 63.49
Convert currency

Add to Basket

Shipping: FREE
Within U.S.A.
Destination, rates & speeds

9.

Rafik Naccache
Published by Packt Publishing - ebooks Account
ISBN 10: 1785281453 ISBN 13: 9781785281457
New Paperback Quantity Available: > 20
Seller:
BuySomeBooks
(Las Vegas, NV, U.S.A.)
Rating
[?]

Book Description Packt Publishing - ebooks Account. Paperback. Condition: New. 221 pages. Dimensions: 9.2in. x 7.5in. x 0.5in.If you are an experienced Clojure developer, longing to take your knowledge to the next level by discovering and using advanced algorithms and seeing how they can be applied to real-world problems, then this book is for you. This item ships from multiple locations. Your book may arrive from Roseburg,OR, La Vergne,TN. Paperback. Seller Inventory # 9781785281457

More information about this seller | Contact this seller

Buy New
US$ 73.26
Convert currency

Add to Basket

Shipping: FREE
Within U.S.A.
Destination, rates & speeds

10.

Naccache, Rafik
Published by Packt Publishing - ebooks Account
ISBN 10: 1785281453 ISBN 13: 9781785281457
New PAPERBACK Quantity Available: > 20
Seller:
Russell Books
(Victoria, BC, Canada)
Rating
[?]

Book Description Packt Publishing - ebooks Account. PAPERBACK. Condition: New. 1785281453 Special order direct from the distributor. Seller Inventory # ING9781785281457

More information about this seller | Contact this seller

Buy New
US$ 74.99
Convert currency

Add to Basket

Shipping: US$ 7.00
From Canada to U.S.A.
Destination, rates & speeds

There are more copies of this book

View all search results for this book