Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
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
← Prev
Back
Next →
← Prev
Back
Next →