F# Detroit Holiday Party 2015: ROP, Functions for Technologists & FsCheck!
Details
{ Let's close out 2015 in a merry fashion with a few hours of FSharp, (free: food * beer) and good people! }
let Lineup =
| Dominick Aleardi of "Railway Oriented Programming"
| Onorio Catenacci of "Functions for Technologists"
| Paulmichael Blasucci of "For All Code, There Exist Properties to be Checked"
The party will be on December 15th, 7-9pm, at GalaxE Solutions, 1001 Woodward, Detroit. Dinner, dessert and beer are being provided by our sponsor, GalaxE. Parking is available in the adjacent garage above CVS on State St. Everyone is welcome, the more the merrier! We look forward to seeing everyone!
>>>>>>>>>>>>>>>>>>>>>>>>>>
ABSTRACTS:
Dominick Aleardi
"Railway Oriented Programming(Monadic Error Handling):: To Err is Human; To Forgive Divine"
We will be looking at writing programs in a way that makes them more predictable, testable, documentable, and most importantly reasonable. Railway Oriented Programming, ROP, is a form of error control that utilizes the often feared and extremely powerful monad. We will review what a monad is in a way that does not require a math a degree. Once we have the foundation we can begin to grasp why monadic error handling is better than throwing an exception. Having identified the need we will walk through the creation of an ROP module and the necessary functions and types to have a robust framework. From there we will apply what we have created to a rest API.
Oniorio Catenacci
"Functions For Technologists"
All of us that do functional programming use functions all day long. But have you ever really stopped to consider the humble function? Onorio's talk will discuss functions in depth. Among other things he'll discuss:
-Currying and Partial Application
-Arity
-Null Values and Types and the Unit Type
-Combinators
-Function Composition
Paulmichael Blasucci
"For All Code, There Exist Properties to be Checked"
Love it or Loathe it, testing is an unavoidable aspect of developing high-quality software. But there's a world of difference between well-tested code and simply writing tests. Very often, the difference boils down to how you assess the "correctness" of your code. By focusing on software as a mapping from inputs to outputs, property-based testing offers a powerful methodology for testing the logical invariants a piece of code should always uphold, regardless of implementation details. This session presents a review FsCheck, a powerful library for doing proeprty-based testing and sophisticated data generation in the CLR ecosystem. In addition to the basic features of the library, attendees will learn about identifying common
invariant patterns and building specifications from collections of properties. Time will also be spent exploring how FsCheck can be used to refine domain models and integrate with other popular testing tools. Finally, real-world examples will highlight both the strengths and weakness of this approach to software craftsmanship. While no prior knowledge is assumed, familiarity with the CLR (.NET or Mono) will be helpful.
