Mastering Clojure

Akhil Wali

  • 出版商: Packt Publishing
  • 出版日期: 2016-03-25
  • 售價: $2,040
  • 貴賓價: 9.5$1,938
  • 語言: 英文
  • 頁數: 266
  • 裝訂: Paperback
  • ISBN: 1785889745
  • ISBN-13: 9781785889745
  • 相關分類: JVM 語言
  • 下單後立即進貨 (約3~4週)

商品描述

Key Features

  • Learn to handle data using sequences, reducers, and transducers in Clojure
  • Explore the lesser known and more advanced features, constructs, and methodologies of the Clojure language and its ecosystem, such as asynchronous channels, actors, logic programming, and reactive programming
  • Sharpen your Clojure skills through illustrative and comprehensive examples

Book Description

Clojure is a general-purpose language from the Lisp family with an emphasis on functional programming. It has some interesting concepts and features such as immutability, gradual typing, thread-safe concurrency primitives, and macro-based metaprogramming, which makes it a great choice to create modern, performant, and scalable applications.

Mastering Clojure gives you an insight into the nitty-gritty details and more advanced features of the Clojure programming language to create more scalable, maintainable, and elegant applications. You'll start off by learning the details of sequences, concurrency primitives, and macros. Packed with a lot of examples, you'll get a walkthrough on orchestrating concurrency and parallelism, which will help you understand Clojure reducers, and we'll walk through composing transducers so you know about functional composition and process transformation inside out. We also explain how reducers and transducers can be used to handle data in a more performant manner.

Later on, we describe how Clojure also supports other programming paradigms such as pure functional programming and logic programming. Furthermore, you'll level up your skills by taking advantage of Clojure's powerful macro system. Parallel, asynchronous, and reactive programming techniques are also described in detail.

Lastly, we'll show you how to test and troubleshoot your code to speed up your development cycles and allow you to deploy the code faster.

What you will learn

  • Maximize the impact of parallelization, functional composition, and process transformation by composing reducers and transducers
  • Process and manipulate data using sequences, reducers, and transducers in Clojure
  • Modify and add features to the Clojure language using macros
  • Explore the features of category theory and custom data sources for logic programming in Clojure
  • Orchestrate parallelism and concurrency using built-in primitives as well as community libraries in Clojure
  • Handle data with asynchronous and reactive programming methodologies and leverage it using the core.async library
  • Test your code with unit tests, specs, and type checks to write testable code
  • Troubleshoot and style your Clojure code to make it more maintainable

About the Author

Akhil Wali is a software developer. He has been writing code as a hobbyist since 1997 and professionally since 2010. He completed his post graduation from Santa Clara University in 2010, and he graduated from Visvesvaraya Technological University in 2008. His areas of work include business intelligence systems, ERP systems, search engines, and document collaboration tools. He mostly works with Clojure, JavaScript, and C#. Apart from computers, his interests include soccer, guitar solos, and finding out more about the universe.

Table of Contents

  1. Working with Sequences and Patterns
  2. Orchestrating Concurrency and Parallelism
  3. Parallelization Using Reducers
  4. Metaprogramming with Macros
  5. Composing Transducers
  6. Exploring Category Theory
  7. Programming with Logic
  8. Leveraging Asynchronous Tasks
  9. Reactive Programming
  10. Testing Your Code
  11. Troubleshooting and Best Practices
  12. References

商品描述(中文翻譯)

主要特點



  • 學習在Clojure中使用序列、減少器和轉換器處理數據

  • 探索Clojure語言及其生態系統中較少知名且更高級的功能、結構和方法,例如異步通道、演員、邏輯編程和反應式編程

  • 通過豐富的實例來提升您的Clojure技能

書籍描述


Clojure是一種以Lisp家族為基礎的通用語言,強調函數式編程。它具有一些有趣的概念和特點,如不可變性、漸進式類型、線程安全的並發原語和基於宏的元編程,使其成為創建現代、高性能和可擴展應用程序的理想選擇。


《精通Clojure》讓您深入了解Clojure編程語言的細節和更高級的功能,以創建更可擴展、可維護和優雅的應用程序。您將首先學習序列、並發原語和宏的細節。通過大量的實例,您將了解如何組織並發和平行處理,這將幫助您了解Clojure減少器,並深入了解組合轉換器和過程轉換。我們還解釋了如何使用減少器和轉換器以更高效的方式處理數據。


隨後,我們描述了Clojure如何支持純函數式編程和邏輯編程等其他編程範式。此外,您還將通過利用Clojure強大的宏系統來提升您的技能。詳細介紹了並行、異步和反應式編程技術。


最後,我們將向您展示如何測試和排除代碼,以加快開發週期並使代碼更快地部署。

您將學到什麼



  • 通過組合減少器和轉換器來最大化並行化、函數組合和過程轉換的影響

  • 在Clojure中使用序列、減少器和轉換器處理和操作數據

  • 使用宏修改和添加Clojure語言的功能

  • 探索範疇理論的特性和自定義數據源,以在Clojure中進行邏輯編程

  • 使用內置原語和社區庫在Clojure中組織並行性和並發性

  • 使用core.async庫處理異步和反應式編程方法並利用它

  • 使用單元測試、規範和類型檢查來測試代碼,編寫可測試的代碼

  • 排除故障並為Clojure代碼添加風格,使其更易於維護

關於作者


Akhil Wali是一名軟件開發人員。他從1997年開始作為業餘愛好者編寫代碼,並從2010年開始以專業身份編寫代碼。他於2010年從聖塔克拉拉大學獲得碩士學位,並於2008年畢業於維斯韋沃亞工業大學。他的工作領域包括商業智能系統、ERP系統、搜索引擎和文檔協作工具。他主要使用Clojure、JavaScript和C#進行工作。除了計算機,他還對足球、吉他獨奏和探索宇宙等事物感興趣。

目錄



  1. 使用序列和模式

  2. 組織並發和平行處理

  3. 使用減少器進行並行處理

  4. 使用宏進行元編程

  5. 組合轉換器

  6. 探索範疇理論

  7. 邏輯編程

  8. 利用異步任務

  9. 反應式編程

  10. 測試代碼

  11. 排除故障和最佳實踐

  12. 參考資料