Mastering Clojure.
Understand the philosophy of the Clojure language and dive into its inner workings to unlock its advanced features, methodologies, and constructsAbout This Book Learn to handle data using sequences, reducers, and transducers in Clojure Explore the lesser known and more advanced features, constructs,...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Birmingham :
Packt Publishing, Limited
March 2016.
|
Temas: | |
Acceso en línea: | Texto completo |
Tabla de Contenidos:
- Cover
- Copyright
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Table of Contents
- Preface
- Chapter 1: Working with Sequences and Patterns
- Defining recursive functions
- Thinking in sequences
- Using the seq library
- Creating sequences
- Transforming sequences
- Filtering sequences
- Lazy sequences
- Using zippers
- Working with pattern matching
- Summary
- Chapter 2: Orchestrating Concurrency and Parallelism
- Managing concurrent tasks
- Using delays
- Using futures and promises
- Managing state
- Using vars
- Using refs
- Using atoms
- Using agents
- Executing tasks in parallel
- Controlling parallelism with thread pools
- Summary
- Chapter 3: Parallelization Using Reducers
- Using reduce to transform collections
- What's wrong with sequences?
- Introducing reducers
- Using fold to parallelize collections
- Processing data with reducers
- Summary
- Chapter 4: Metaprogramming with Macros
- Understanding the reader
- Reading and evaluating code
- Quoting and unquoting code
- Transforming code
- Expanding macros
- Creating macros
- Encapsulating patterns in macros
- Using reader conditionals
- Avoiding macros
- Summary
- Chapter 5: Composing Transducers
- Understanding transducers
- Producing results from transducers
- Comparing transducers and reducers
- Transducers in action
- Managing volatile references
- Creating transducers
- Summary
- Chapter 6: Exploring Category Theory
- Demystifying category theory
- Using monoids
- Using functors
- Using applicative functors
- Using monads
- Summary
- Chapter 7: Programming with Logic
- Diving into logic programming
- Solving logical relations
- Combining logical relations
- Thinking in logical relations
- Solving the n-queens problem
- Solving a Sudoku puzzle
- Summary.
- Chapter 8: Leveraging Asynchronous Tasks
- Using channels
- Customizing channels
- Connecting channels
- Revisiting the dining philosophers problem
- Using actors
- Creating actors
- Passing messages between actors
- Handling errors with actors
- Managing state with actors
- Comparing processes and actors
- Summary
- Chapter 9: Reactive Programming
- Reactive programming with fibers and dataflow variables
- Using Reactive Extensions
- Using functional reactive programming
- Building reactive user interfaces
- Introducing Om
- Summary
- Chapter 10: Testing Your Code
- Writing tests
- Defining unit tests
- Using top-down testing
- Testing with specs
- Generative testing
- Testing with types
- Summary
- Chapter 11: Troubleshooting and Best Practices
- Debugging your code
- Using tracing
- Using Spyscope
- Logging errors in your application
- Thinking in Clojure
- Summary
- Appendix: References
- Index.