Please log in to watch this conference skillscast.
How can abstractions like monads or functors help the working programmer? While most developers are aware of the abstractions, libraries implementing them are perceived as too academic, and so usage in the industry remains rare. In this talk we will develop an intuition for when some common abstractions are useful, using examples from the Scalaz library. Abstractions are fundamental to writing software, and certain abstractions (polymorphism, higher-order functions) are widely accepted and used. Other abstractions, based on category theoretic concepts such as monads, offer similar benefits but haven't found their way into many workplaces yet.
We will discuss some of the main abstractions in the Scalaz library, but instead of explaining the details of what they are, we will focus on when and how we can use them to write code with less boilerplate. We will attempt to build an intuition and motivation for the abstractions and their use, leaving precise definitions and further details to the excellent material available elsewhere.
The talk will cover monoids, monads, and applicative functors.
Slides available at http://bit.ly/mkhl-scalax-2014
YOU MAY ALSO LIKE:
- LDNUG September 2017 - #ProgNET Special with Richard Campbell (in London on 12th September 2017)
- Progressive .NET 2017 (in London on 13th - 15th September 2017)
- Fast Track to F# with Tomas Petricek & Phil Trelford (in London on 16th - 17th October 2017)
- Test Driven Development (TDD) Workshop with Damjan Vujnovic (in London on 7th - 8th December 2017)
Concrete Abstraction with Scalaz
Martin is software architect and senior software developer at EWERK IT GmbH. Martin has used Haskell for student and research projects since 2003, including his thesis project on the heterogeneous specification tool set Hets. Ever since joining the industry for a job programming Java, he has pushed Scala as a successor. His current work is focused on the energy market and includes financial risk analysis, market data analysis, and energy schedule management.