Allister will be presenting the following session
filter_list help_outline
  • Allister Beharry

    Allister Beharry - Lightweight dependent types for scientific computing

    Allister Beharry
    Allister Beharry
    Software Developer
    schedule 1 year ago
    Sold Out!
    20 Mins

    Sylvester is an F# DSL for scientific computing which implements an advanced type system where vector, matrix, tensor, neural-network and other types have numeric properties like dimension sizes, rank, layer node size, etc., encoded as part of the type. Type-level constraints for operations like matrix multiplication or network layer construction utilize the F# type checker as a type-checker for linear algebra and other mathematical domains which allows for type-level verification of mathematical operations and for Intellisense-enabled IDEs to provide immediate feedback that helps the user avoid errors in mathematical expressions..

1. What got you into Functional Programming (FP)?

I worked on a project to create a machine learning framework for a client in C#, and I then became interested in using a more mathematical and functional language that still ran on .NET. I started learning F# and before long I was hooked.

2. What has been your best moment or highlight working with FP?

Sylvester is the most interesting and fun thing I've done in FP and I'm really pleased at how it is turning out so far.

3. What are some of the greatest challenges of working with FP?

Learning the basic concepts of FP and then attempting to use them effectively can be a challenge coming from a mostly object-oriented .NET background. Although I've been using F# for a while I still have a lot to learn. I would like to start learning non-ML languages like Haskell but it still seems daunting.

4. All the mainstream programming languages are adding functional programming features. Most new languages and frameworks are strongly influenced by FP. What is your advice to object-oriented programmers?

One thing that helped me a lot was F#'s ability to be just an object-oriented language so I could continue to use familiar concepts like classes as I gradually learnt more advanced ways to think about types and functions. I'd recommend to C# users starting to learn F# to begin with the familiar concepts like classes and inheritance learn how to implement standard .NET class libraries in F# first, and then start to explore the more functional parts of the language. 

5. What will be some of the key takeaways from your sessions at the conference?

i think functional programming languages severely under-utilized in machine learning and data science today and in many ways they are superior to traditional languages like Python. I'd l like to see F# become a serious competitor to Julia as a modern advanced language for scientific computing.

6. The conference has more than 50 sessions. Which ones are you most looking forward to attending and why?

Although I wasn't able to attend in person I was interested in seeing the sessions on logic programming and APL and I'll be checking out the videos when they are available