Functional programming combines the expressiveness and power of abstract mathematics with the intuitive clarity of abstract mathematics. If you start reading about it it's full of words like category theory, monad, functor, combinator, lambda calculus, currying and expressions like Y=λf.(λx.f(xx))(λx.f(xx)). Also, most of the people you meet talking about it are like they are in some kind of a cult, uniform and trying to convert you to the one true way. And you just want to write better code - not a doctoral thesis! This talk is not like that. This talk focuses on how you can use functional programming techniques as additional tools in your toolbelt - tools that you can use when and if they are needed, where they are needed. Tools that you use in addition to, not instead of everything you've learned until now. Tools and techniques that will enable you to, sometimes, make your code more reliable, more predictable, more readable, and more maintainable, May Contain Jargon. No Math Required.
Wekoslav Stefanovski has more than two decades of professional developer experience using a variety of development technologies. Has been using C# since the first public beta, and has a long and fruitful love relationship with it. Has been using JavaScript since the previous millennium and has a long and fruitful love/hate relationship with it. Currently, works at Sourcico as Head of development. He is passionate about functional programming, static code analysis, compiler design and code quality metrics.