- The Clojure library "flc" and the ideas that shaped it
At this meetup Johan Lodin (https://github.com/jolod) will release his library "flc". It is a library based on his presentation last year on state management using functional life cycles, after getting some requests to actually use the presented code. (This presentation will be very different from last years presentation though.) He won't focus too much on how the library is used; rather the focus will be on the ideas that shaped it. In particular, "flc" does not really have a system per se, and is instead built on functions that compose to add behavior making it very extensible. The result is code that is shorter than the equivalent "component" and "integrant" (two popular libraries solving the same problem, using protocols and multimethods, respectively), but more importantly, without any built-in support in "flc" you can write third-party libraries to handle - logging, - async start, - exception handling during start and/or, - exception handling during stop, - etc. It can even be a drop-in replacement for plumatic's graph library (although with different performance characteristics), thanks to its openness and "compositional extensibility". Prior knowledge of Clojure is beneficial, but not required; after all, it's just functions, lists, and maps! The doors open at 6 pm for mingle and food, and the presentation starts 30 minutes later. Thanks to HiQ for sponsoring this event!
- Smart Testing with a functional approach (foss-north Community Day event)
Chalmers University of Technology
- All about monads, and Phocate: A monadic parser in and for PHP
Our last meetup on Advent of Code was really appreciated by those who participated, so we will try the same format again. We start with Samuel Ytterbrink presenting Phocate, a monadic parser written in PHP which parses PHP. After the 15 minute presentation, we split into three groups. Each group has a focus and while the group has a prepared leader the discussion is driven by everyone's participation. * Group 1 is lead by Samuel himself and goes deeper into Phocate and his experience using monadic code in PHP. * Group 2 is lead by Jean-Louis Giordano and is an introduction to monads for those new to the concept or have no prior experience of using monads themselves. * Group 3 is lead by Johan Lodin and focuses on the monad abstraction itself and are for those who are comfortable using monads. * (Group 4 is lead by no one and focuses on mingling!) This event is hosted by SpeedLedger AB in Nordstan. The company goal is to reduce the anxiety and pains involved in running a small business and uses Scala in their products. See you there!
- Lightning talk and Advent of Code
It's soon that time of year: time for the advent of code that is! https://adventofcode.com/ Advent of code is a series of puzzles being released each day, the perfect occasion to learn a new language or practice some new techniques! So let's meet, split into groups and try to solve one or several of the puzzles perhaps in different languages, and we can take a round to compare & discuss results in the end! But before that, we can take some time for some lightning talks so that people that would rather come for the talks & mingle get something to talk about :) Here is a proposed schedule: 17:30 - 18:30: Mingle (food and drinks) 18:30 - 18:50: Lightning talk: Quick look at TypeScript 18:50 - 19:00: Mingle & split into groups 19:00 - 20:00: Try to solve some advent of code puzzles 20:00 - 20:30: Compare & discuss results Zimpler will be sponsoring foods and drinks. See you there!
- Functional thinking: two refactoring exercises in Purescript and Haskell
Let's kick off a new season of Got.Lambda meetups with two talks, by Johan Lodin (github.com/jolod) and Magnus Therning (github.com/magthe). The speakers will show how to (re)design functional programs in Purescript and Haskell respectively, by taking advantage of the features of the two languages. Johan's talk : Polymorphism and "abstract base class" in PureScript. I will walk through a small refactoring I did in PureScript. The result is similar to an abstract base class in a typical OO language, but I will show how it differs and what those differences imply. Magnus' talk: After a Python meetup on the Gilded Rose Refactoring Kata I found some inspiration and sat down to do it, using the same techniques, but in Haskell. My goal is to redo it (at least most of it), live in front of the audience. --- Logistics --- Bring a laptop with a working Haskell and/or Purescript dev environment if you want to follow along! The hosting company will provide some food and drink. Call or whatsapp Marco [masked]) if either door is closed.
- Functional life cycles for state management during interactive development
In this presentation Johan Lodin will walk through the process of refactoring `component` into a library using nothing but functions as abstractions. In 2014 Stuart Sierra released `component`--a library to manage state during interactive development. It solved a problem that many craved a solution for, but not everyone agrees on the design choices made in `component`, and this spawned a class of new libraries (see https://github.com/stuartsierra/component/wiki/Related-Work). This presentation can be seen as one of them. I will make a quick introduction to `component`, but you might get even more out of this meetup if you have watched Stuart Sierra's presentation first: https://www.youtube.com/watch?v=13cmHf_kt-Q. But the presentation is not really about solving the state management problem. It's more a story of how you can design things if you fully embrace functions as your primary tool, so I aim for this presentation to be interesting to any programmer in a dynamic language with first-class functions and immutable data structures.
- Advent of Code Retro (Beginner friendly!)
Let's have a beginner friendly and open workshop to go through some of the recent Advent of Code puzzles! Advent of Code is a series of small puzzles to solve, one per day during the days leading up to Christmas. You can find them here: http://adventofcode.com/ You can try to solve some of them before the meetup, and we'll go through some interesting ones together and try to learn from each other! Zimpler will be sponsoring, this time we'll see if we can find some healthier alternative to pizza :) Bring your laptop!
- Lightning Talks Evening
Let's have a series of shorter presentations! Let's have a handful of 10 min presentations, if you'd like to volunteer for a short one please state in the comments section! We will have recording equipment, but recording will be opt-in. Zimpler will be hosting with the usual Pizzas and Drinks! WARNING: we will host at our NEW Zimpler office! For the ones used to the previous office the entrance is on the other side of the building. Talks: George, a platform for creating and learning (Terje Dahl) Building Micro-Services with Haskell (Marco Zocca)
- Robert Virding on Lisp Flavoured Erlang and the BEAM
Robert Virding (Co-inventor of Erlang) will present LFE (or Lisp Flavoured Erlang), a lisp syntax front-end to the Erlang compiler! This will be the occasion to look into how languages on the BEAM (Erlang Virtual Machine) work, and get some insight on how to implement languages on the BEAM. Zimpler will be sponsoring soft drinks and Pizza as usual!
- Algebraic Effects - an alternative to Monads
Dan Rosén will be giving a talk on Algebraic effects at this meetup based on the paper "Type Directed Compilation of Row-Typed Algebraic Effects" by Daan Leijen. TimeEdit is hosting this meetup! For who ever is wondering, algebraic effects are an alternative to monads for modeling side-effects (e.g. input/output, state, or exceptions) in an otherwise pure functional language. The paper can be read online here: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/12/algeff.pdf We thought it might interest some of you as we have a few slots left. Sorry about the late notice! You can find more details about the meetup here: https://www.meetup.com/preview/Papers-We-Love-Gothenburg/events/243458363 p.s. I've added this meetup here following Jean-Louis advice for the people who aren't on PWL. You need not RSVP here if you've already RSVPd on the PWL meetup :)