Summary
In this chapter, we looked at how we can create concurrent and asynchronous tasks using the core.async
and Pulsar libraries. The core.async
library provides an implementation of CSPs, and is supported in both Clojure and ClojureScript. We studied the various constructs in the core.async
library and also demonstrated how a solution to the dining philosophers problem can be implemented using this library. Later on, we explored actors through the Pulsar library.
We will explore reactive programming in the following chapter. As we will see ahead, reactive programming can be thought of as an extension of asynchronous programming for handling data and events.