Compile Time Logic Programming in Scala by Daniel Beskin


How do you let the compiler do the work for you?

In this talk from ScalaUA, Software Developer Daniel Beskin lifts the lid on Prolog and how we can be free from the burden of type construction.


Compile Time Logic Programming in Scala

It has been known that Scala's implicits allow one to write Prolog-like programs that run at compile time. Although letting the compiler solve your daily Sudoku puzzle for you is fun, how could that possibly be useful in an actual program? 
Taking a step back, as vigilant observers of type safety, we try to leverage the type system to ensure the correctness of our code; but when the domain constraints become too involved, constructing the appropriate types might become cumbersome. 
In this talk, after introducing some basic Prolog phrased in the language of implicits, we see how this newfound power can free us from the burden of type construction by letting the compiler do most of the grunt work for us.
This talk was given by Daniel Beskin at ScalaUA Conference 2019.