
Learn ClojureScript, a functional language that compiles to JavaScript, and set up a development environment to explore fundamentals like arithmetic, functions, variables, conditionals, and sequences with re-active reactive programming.
David Eisenberg, author and instructor for this course, brings 35 years of programming experience and champions ClojureScript to empower functional programming on the web.
Understand how ClojureScript, a subset of Clojure and a Lisp dialect, compiles to JavaScript, enabling functional programming with immutable data and concise, expressive code.
Learn to set up Java and the JVM for ClojureScript, install line engine to create and run projects and interact with ClojureScript, and verify Java with java -version.
Install an integrated development environment using IntelliJ IDEA with the Cursive plugin for Clojure script, then set up on Windows, Mac OS, and Linux and create your first project.
Create a minimal ClojureScript project from a template, clone the repository, install the template with Lineman, and import the project into an IDE to run a hello world example.
Interact with ClojureScript via the browser repl, learn the read-eval-print loop, build and run a project, connect to localhost:9000, see hello world, and exit with ctrl-c.
Practice arithmetic in ClojureScript via the REPL, where the list's first item is a function and the rest are arguments, evaluating expressions with plus, minus, multiply, and divide.
Interact with the browser page via the ClojureScript REPL to access the DOM, read and set input values, compute arithmetic, geometric, and harmonic means, and display results.
Write and call functions in clojure script, defining square, add, and hypothenuse. Explore the repl and domino library for functional document object model manipulation and events in the averages project.
Define separate pure functions for arithmetic, geometric, and harmonic means in ClojureScript using inputs a and b, then test them in the REPL.
Read numbers from input fields A and B, compute arithmetic, geometric, and harmonic means, and display results in the respective spans when the calculate button is clicked.
Bind values to symbols with def and let to define variables and scope in ClojureScript. Use these bindings to compute loan payments in a browser project.
Explore conditional calculation in ClojureScript using relational operators, explicit or and not, and if and cond forms to map boolean tests to results, with predicate checks and discount examples.
Explore operations on lists and vectors in Clojure script, including first, rest, and sequences, with immutability. Learn how for comprehensions and range create new data without altering originals.
Explore higher-order functions with sequences by using map to apply functions, define anonymous functions, filter and remove elements, and reduce to a single value, all with immutable data.
Learn sequence manipulation to build a program that computes arithmetic, geometric, and harmonic means from a list or vector of numbers, using map, reduce, and DOM event handling.
Explore maps as key-value data structures in ClojureScript, with braces and keywords. Access values with get or as a function, and update or remove using assoc and disassociate.
Learn to build a word frequency counter using a map, split text into words, reduce to a frequency map, and render results as HTML list items.
Learn how to make ClojureScript code more compact and readable with destructuring, including positional binding of vectors, ignoring items with underscores, and handling variadic arguments with ampersand notation.
Master destructuring to extract values from nested vectors and maps, use the keys construct and as to bind entire data structures, and apply these techniques to data like city inventories.
Learn to create variadic and multi-arity functions in clojurescript, using ampersand destructuring, docstrings, and reduce to handle varying arguments, with examples like name two, make initials, and an area function.
Learn how partially applied functions create new functions with fewer arguments, illustrated by dialing with a 408 area code and computing loan payments across years using principal and APR.
Explore recursion and the loop construct in ClojureScript by implementing the Kolata sequence, counting steps to reach 1, and optimizing with recur and loop for tail recursion.
Discover lazy sequences in ClojureScript, where items are calculated only on consumption, explore range and map behavior, and learn to force evaluation with do run or do all.
Learn to handle errors in ClojureScript using try and catch. Catch specific error types, and use finally to clean up before continuing.
Explore namespaces in ClojureScript by organizing code with require and refer, using qualified names, and modularizing statistics functions for a robust, collision-free program.
Store mutable state in ClojureScript with atoms, deref to access values, and atomically update them with reset or swap; use a map-based rgb example with assoc and pure functions.
Explore basics of reactive programming with reagent and react, where components render to the DOM, use an atom for state, and build an interface with paragraph, input, and gray box.
Explore how events drive reactive programming by updating a color square when red, green, blue, or hex inputs change, using an atom to store state.
Learn to build a release version of a colors ClojureScript project by cleaning the target folder, switching from development to release, and deploying the release to your server.
Review the course journey from arithmetic basics through sequences and higher order functions to reactive programming, and point to resources for further learning about ClojureScript.
In this Learning ClojureScript training course, expert author David Eisenberg teaches you how to write functional programs for the web. This course is designed for users that already have experience with JavaScript, HTML, and manipulating the Document Object Model.
You will start by learning how to set up your system, then jump into writing functions. From there, David will teach you about sequences, and more advanced ClojureScript concepts such as destructuring, recursion and loops, and error handling. Finally, you will learn about reactive programming in ClojureScript.
Once you have completed this computer based training course, you will be fully capable of using ClojureScript for your own functional web programming needs. Working files are included, allowing you to follow along with the author throughout the lessons.