Quick Clojure: Effective Functional Programming 1st edition by Mark Mcdonnell – Ebook Instant Download/Delivery ISBN(s): 1484229525, 9781484229521
Product details:
- ISBN 10: 1484229525
- ISBN 13: 9781484229521
- Author: Mark
Get up to speed with Clojure in this quick and practical primer. You’ll learn the nuts and bolts of functional programming, data structures, sequences, destructuring, pattern matching, polymorphism, concurrency, conventions, and more. Author Mark McDonnell talks about organization with namespaces; how to change the language via macros; object-oriented programming; and creating command-line apps. Finally, he shows you how to write Clojure from shell languages and interfaces such as Vim. After reading and using Quick Clojure, you’ll come away with first-hand knowledge and advice on how to quickly adopt, use, and apply Clojure without all the theoretical baggage that bigger books can sometimes bring.
Table of contents:
Chapter 1: What Is Clojure?
Why Should You Care?
The Name?
Getting Started
Documentation
Summary
Chapter 2: Data Structures and Syntax
List
Vector
Map
Keywords
Keys, Values, and Replacement
Set
Vars and Symbols
Assigning Functions
Temp Variables
Dynamic Variables
Summary
Chapter 3: Functional Programming
Immutability
Referential Transparency
First-class Functions
Complement
Apply
Map
Reduce
Filter
Comp
Partial Application
Recursive Iteration
Composability
Summary
Chapter 4: Sequences
List Comprehension
Sequence Abstraction
Lazy Sequences
lazy-seq
Summary
Chapter 5: Functions
Anonymous Function Shorthand
Pre and Post Conditions
clojure.core
Map Construction
Pipelining
Dropping Values
Code Comments
Endless Cycle
Uniqueness
Predicate Functions
Collection Extraction
String Formatting
Frequency
Zipping Values
Interposing Values
Partitioning Data
Simple Parallelization
Repeating Yourself
Basic I/O
clojure.string
Checking for Whitespace
Beginnings and Endings
Trimming Whitespace
Summary
Chapter 6: Destructuring
Summary
Chapter 7: Pattern Matching
core.match
Example: FizzBuzz
Backreferences
Matching Literals
Matching Data Structures
Safeguarding
Polymorphism
Summary
Chapter 8: Concurrency
Retriable
Coordinated
Asynchronous
Thread Safe
Delay
Promise
Future
Atom
Lock
Deadlock
Livelock
Agent
Without wait/wait-for
Using wait
Using wait-for
Agent Errors
Transactions
dosync/ref/alter
ref-set
STM Restart Policy
Nested Transactions
ensure
commute
Channels
Go Blocks
Thread Function
Distinction
Alternate
Buffered Channels
Sliding/Dropping Buffered Channels
Timeout Channels
Summary
Chapter 9: Namespaces
What Is a Namespace?
Loading Namespaced Files
Interning
Root Bindings
Dynamic Variables
Detour Over…
foo.core
foo.bar
foo.baz
:require
:as
:refer
:all
:use
Anything Else?
Summary
Chapter 10: Macros
People also search:
clojure coding
clojure best practices
functional programming clojure
programming clojure
programming clojure pdf