Query expressions in F# 3.0 are a convenient notation for writing LINQ queries, but are not always easy to decompose using lambda-abstraction so that queries can be built up from smaller components. We are developing an approach to query composition that is implementable as a library that interjects a rewriting stage so that query expressions are normalized before being passed on to the standard F# LINQ system. Our approach provides a formal guarantee of success (at least for a subset of query expressions, using SQL as a backend). This talk will discuss the background of the library and demonstrate its use via examples.
James Cheney studied computer science and mathematics at Carnegie Mellon University, receiving BS and MS degrees in 1998, and pursued graduate study at Cornell University, earning his PhD on the topic of nominal logic programming in 2004. Since 2004, he has been a member of the research staff of the Laboratory for Foundations of Computer Science, School of Informatics, University of Edinburgh, first as a postdoctoral researcher and currently holding a Royal Society University Research Fellowship. His research interests span topics in programming languages, databases, and their broader applications to science.