In software development, we often face the same problem over and over again. For example, when designing user-interfaces, we need to specify the layout of components; when designing financial systems, we need to detect various patterns in changing prices. The Domain Specific Language (DSL) approach is to design a language for the specific problem domain and then use it repeatedly to solve multiple instances of the same problem.
In this talk, we look how to think about DSLs in a functional way. This lets us focus on the domain. Rather than worrying about the syntax, we start by understanding what problems we actually want to model and what is the best way to do so. Along the way, we’ll look at three fun examples ranging from a language for building 3D objects to a language for detecting price change patterns.
Get ready for some live coding in F#, but don’t worry if you have not done much F# before! You can use the ideas from this talk in any programming language and I’ll introduce all the necessary F# along the way.
While Machine Learning practitioners routinely use a wide range of tools and languages, C# is conspicuously absent from that arsenal. Is .NET inadequate for Machine Learning? In this talk, I'll argue that it can be a great fit, as long as you use the right language for the job, namely F#.
F# is a functional-first language, with a concise and expressive syntax that will feel familiar to data scientists used to Python or Matlab. It combines the performance and maintainability benefits of statically typed languages, with the flexibility of Type Providers, a unique mechanism that enables seamless consumption of virtually any data source. And as a first-class .NET citizen, it interops smoothly with C#. So if you are interested in a language that can handle both flexible data exploration and the pressure of a real production system, come check out what F# has to offer
FQuake3 is a project started by Will as an attempt to port id Software’s Quake III Arena to F# and to figure out how functional programming can be applied to game engines. The project is less than a year old, and has been worked on by Will in his free time. The talk will discuss Will’s journey to the founding of F# and why he started this project. The project structure, demos, code examples, and comparisons will be presented along with a live code example of how to port a C function to F#.
Traditional approaches to build cloud applications have been very successful, but as we reach the performance limits of computing, perhaps a functional approach will yield the next quantum leap in designing and building high performance distributed applications.
In this talk, we will take a traditional problem - building an accounting system - and develop a radically new functional architecture suited especially for Azure. We will apply functional concepts such as value semantics, and immutability to the Azure environment and develop techniques for super-scalable, functional workflows.