Backtracking, non-determinism, and cuts in F# under 100 lines of code

May 5, 2015

Dragan Ivanovic


Backtracking, non-determinism, and cuts in F# under 100 lines of code

Time:   11:00am
Location:   Meeting room 302 (Mountain View), level 3

In this talk I’ll try to practically demonstrate how some of the key features of Prolog-style logic programming can be easily implemented as a user-defined syntactic and semantic extension of a functional programming language – in this case F# with its computational expressions. As a result, functional-style developers can benefit from automatic backtracking, non-determinism, and cuts when needed, without sacrificing other advantages of the host language/platform.