Asynchronous Functional Programming on the JVM

location_city Bengaluru schedule Dec 13th 05:15 - 06:00 PM IST place Crystal 1 people 13 Interested

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

  • Dhaval Dalal
    keyboard_arrow_down

    Dhaval Dalal / Morten Kromberg / Ravindra Jaju - Code Jugalbandi - Exploring Concurrency

    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

  • Dhaval Dalal
    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.

  • Dhaval Dalal
    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.

help