Asynchronous Functional Programming on the JVM
We'll take a close look at core.async - the CSP library for Clojure(script).
- The motivation
- Problems suitable for CSPs to handle
- Syntax
- Patterns
Given the minimalist nature of Lisps, the syntax is underwhelming, but applications can be exciting in the manner they make complex problems within reach.
Outline/Structure of the Demonstration
- Overview
- Syntax
- Self-contained problems with solutions - live coded.
- Q & A (last 5-10 mins)
Learning Outcome
Understand where and how to use CSP. And specifically know how to use core.async in your everyday work.
Target Audience
Developers familiar with multi-threading, concurrent programming, and are looking for a different and extremely effective ways to improve their art in this area.
Prerequisites for Attendees
Familiarity with Lisp.
Clojure experience may be helpful, but not necessary.
schedule Submitted 4 years ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Dhaval Dalal / Morten Kromberg / Ravindra Jaju - Code Jugalbandi - Exploring Concurrency
Dhaval DalalSoftware ArtisanCalixir Consultants Pvt. Ltd.Morten KrombergCXODyalogRavindra JajuSolutions ConsultantSahaj Softwareschedule 4 years ago
45 Mins
Demonstration
Beginner
In Indian classical music, we have Jugalbandi, where two lead musicians or vocalist engage in a playful competition. There is jugalbandi between Flutist and a Percussionist (say using Tabla as the instrument). Compositions rendered by flutist will be heard by the percussionist and will replay the same notes, but now on Tabla and vice-versa is also possible.
In a similar way, we will perform Code Jugalbandi (http://codejugalbandi.org) to see how the solution looks using different programming languages. This time the focus of Code Jugalbandi will be on exploring concurrency models in different languages. Functional Programming has made programming concurrency easier as compared to imperative programming. For deeper perspective on Code Jugalbandi, check out http://codejugalbandi.org/#essence-of-code-jugalbandi
-
keyboard_arrow_down
Dhaval Dalal - Make your program spicy - Currying and Partial Function Application (PFA)
45 Mins
Demonstration
Beginner
In this session, we will look Currying and Partial Function Application (PFA) in Functional Programming. Languages like Clojure don't have currying, but PFA, where has Haskell currying and not PFA, whereas Scala has both, Groovy wants you to call methods like curry() and rcurry(). In OO paradigm, we use DI (dependency Injection) and we will see how this is automatically subsumed using Currying and PFA.
-
keyboard_arrow_down
Dhaval Dalal - Destructuring and Pattern Matching
45 Mins
Demonstration
Beginner
In this session, we will look De-structuring and Pattern Matching in Functional Programming. What exactly each is and how differently it gets implemented in various languages like languages like Scala, Clojure, Haskell, Erlang, JavaScript. In some languages like Haskell and Scala, it takes a unified form, whereas in languages like Clojure, the two are different
In OO paradigm, this is takes the form of Double-Dispatch or n-Dispatch and usually gets implemented as the famous (or infamous) Visitor Pattern. We will look at how this pattern is made defunct in FP paradigm using Pattern Matching.