Table of Contents for
Etudes for ClojureScript
Close
Version ebook
/
Retour
Etudes for ClojureScript
by J. David Eisenberg
Published by O'Reilly Media, Inc., 2015
nav
Cover
Études for ClojureScript
Etudes for ClojureScript
Preface
1. Functions and Variables
2. Interacting with JavaScript and Web Pages
3. Lists, Vectors, and Higher-Order Functions
4. Maps
5. Programming with React
6. Interlude: Room Usage Project
7. Records and Protocols
8. Asynchronous Processing
A. Solutions
B. Setting Up Your ClojureScript Environment
C. Creating a ClojureScript Project with Leiningen
D. ClojureScript on the Server
Preface
What’s an Étude?
What Are Études for ClojureScript?
Acknowledgments
1. Functions and Variables
Étude 1-1: Defining a Function in the REPL
Étude 1-2: Defining Functions in a Source File
Étude 1-3: Using def
Étude 1-4: Using let
Étude 1-5: More Practice with def and let
2. Interacting with JavaScript and Web Pages
Étude 2-1: Direct Use of JavaScript
Invoking Methods
Accessing Properties
Creating JavaScript Objects
Listening for Events
Étude 2-2: Using Google Closure
Putting Google Closure into Your Project
Using Google Closure to Access the DOM
Using Google Closure to Handle Events
Étude 2-3: Using dommy
Putting dommy into Your Project
Using dommy to Access the DOM
Using dommy to Handle Events
Étude 2-4: Using Domina
Putting Domina into Your Project
Using Domina to Access the DOM
Using Domina to Handle Events
Étude 2-5: Using Enfocus
Putting Enfocus into Your Project
Using Enfocus to Access the DOM
Using Enfocus to Handle Events
3. Lists, Vectors, and Higher-Order Functions
Étude 3-1: Move the Zeros
Étude 3-2: More List Manipulation
Étude 3-3: Basic Statistics
Étude 3-4: Basic Statistics in a Web Page
Étude 3-5: Dental Hygiene
Étude 3-6: Random Numbers—Generating a Vector of Vectors
Étude 3-7: Monthly Daylight
4. Maps
Étude 4-1: Condiments
Parsing XML
Command-line Arguments
Mutually Recursive Functions
Étude 4-2: Condiment Server
Setting Up Express
Generating HTML from ClojureScript
Putting the Étude Together
Étude 4-3: Maps—Frequency Table
Reading the CSV File
Étude 4-4: Complex Maps—Cross-Tabulation
Étude 4-5: Cross-Tabulation Server
5. Programming with React
Étude 5-1: Reactive Programming with Quiescent
Hints
Étude 5-2: Reactive Programming with Reagent
Hints
6. Interlude: Room Usage Project
Étude 6-1: Build the Data Structure
Étude 6-2: Visualizing the Data (Version 1)
Étude 6-3: Visualizing the Data (Version 2)
7. Records and Protocols
Étude 7-1: Rational Numbers
Étude 7-2: Complex Numbers
Étude 7-3: Writing Tests
8. Asynchronous Processing
Étude 8-1: A Card Game
The Art of War
War: What Is It Good For?
Pay Now or Pay Later
The Design
Messages Are Asynchronous
Representing the Deck
A. Solutions
Solution 1-2
Solution 1-3
Solution 1-4
Solution 1-5
Solution 2-1
Solution 2-2
Solution 2-3
Solution 2-4
Solution 2-5
Solution 3-1
Solution 3-2
Solution 3-3
Solution 3-4
Solution 3-5
Solution 3-6
Solution 3-7
Solution 4-1
Solution 4-2A
Solution 4-2B
Solution 4-3
File cljs_made_easy/line_seq.clj
File cljs_made_easy/line_seq.cljs
File frequency/core.cljs
Solution 4-4
Solution 4-5
Solution 5-1
Solution 5-2
Solution 6-1
File building_usage/src/roster.cljs
File building_usage/src/utils.cljs
Solution 6-2
File core.cljs
File index.html
Solution 6-3
File core.cljs
File index.html
Solution 7-1
Solution 7-2
Solution 7-3
Sample core.async Program 1
Sample core.async Program 2
Solution 8-1
File core.cljs
File utils.cljs
B. Setting Up Your ClojureScript Environment
Setting Up ClojureScript
Getting Java
Getting Clojure and ClojureScript
Creating a ClojureScript Project
ClojureScript File src/sample_project/core.cljs
File index.html
File build.clj
File release.clj
File repl.clj
File watch.clj
Getting a Text Editor
C. Creating a ClojureScript Project with Leiningen
The mies Template
The figwheel Template
D. ClojureScript on the Server
ClojureScript on the Server
Getting Node.js
Creating a ClojureScript/Node.js Project
ClojureScript File src/node_project/core.cljs
File node.clj
File node_repl.clj
Using Node.js Modules