The fifth LDN Functionals meetup hosted at Facebook’s offices in London.

Program:

Kris Jenkins : What is Functional Programming?

Kris Jenkins on stage

The key point of Kris presentation was that functional programming is not about specific programming concepts and tools (higher order functions, map, reduce…) but about removing the side effects from the code.

He presented side effects of a function as the hidden arguments and hidden output of the function and importance of eliminating them.

It is the same description of functional programming as on Wikipedia but in more approachable words.

In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. It is a declarative programming paradigm, which means programming is done with expressions. In functional code, the output value of a function depends only on the arguments that are input to the function, so calling a function f twice with the same value for an argument x will produce the same result f(x) each time. – Wikipedia

Additional reading:

What Is Functional Programming?

Cristiano Calcagno: Functional Programming At Facebook

Cristiano Calcagno on stage

Cristiano presented short history of tool called Infer developed by him and colleagues in a company called Monoidics which was in 2013 acquired by Facebook.

Infer is code static analysis tool for detecting bugs and flaws for Java (Android), C and Objective-C written in OCaml

Code analysis needs not to be just accurate but also:

  • Usable and helpful to developer in way to fix his code
  • Fast and integrated into developers workflow without distractions

As it is impossible or hard and inefficient measure accuracy (number of false positives) in analyser output, they rather in Facebook measure fix rate of the reported issues by developers. This number they keep on over 80%.

There was mentioned some other tool from MIT which takes a different approach than Infer to analyse code but as there is not one best tool and each has his own pros and cons best assurance is to use them all.

Sebastian Funk: Incremental - Self Adjusting Computations for OCaml

Sebastian Funk on stage

Very technical talk (thumbs up!) about a library for incremental computations written in OCaml at Jane Steet; one of the largest users of OCaml in the world.

He went from a history of the first version of Incremental to latest.

The first version had a naive implementation but it was fast and solved the particular problem. Next few versions were about improving implementation and expand use cases. This made the library more usable but in same time significantly slower than the first version, so later versions deal with speed improvements and optimization of the library.

Additional reading:

Introducing Incremental


Date:

2016-02-09 19:00

Location:

Facebook Office, 10 Brock St, London NW1 3FG

Met:

Johnny Chan, Shane Gryzko, (? guy with dark skin and beard in elevator and outside the building)