Datalog may be considered either an unusually powerful query language or a carefully limited logic programming language. Datalog is declarative, expressive, and optimizable, and has been applied successfully in a wide variety of problem domains. However, most use-cases require extending Datalog in an application-specific manner. In this paper we define Datafun, an analogue of Datalog supporting higher-order functional programming. The key idea is to track monotonicity with types.
%0 Journal Article
%1 Arntzenius2016Datafun
%A Arntzenius, Michael
%A Krishnaswami, Neelakantan R.
%D 2016
%J ACM SIGPLAN Notices
%K 68n15-programming-languages 68n17-logic-programming 68n18-functional-programming-and-lambda-calculus 68q01-theory-of-computing 68q55-semantics
%N 9
%P 214--227
%R 10.1145/3022670.2951948
%T Datafun: a Functional Datalog
%U http://dx.doi.org/10.1145/3022670.2951948
%V 51
%X Datalog may be considered either an unusually powerful query language or a carefully limited logic programming language. Datalog is declarative, expressive, and optimizable, and has been applied successfully in a wide variety of problem domains. However, most use-cases require extending Datalog in an application-specific manner. In this paper we define Datafun, an analogue of Datalog supporting higher-order functional programming. The key idea is to track monotonicity with types.
@article{Arntzenius2016Datafun,
abstract = {{Datalog may be considered either an unusually powerful query language or a carefully limited logic programming language. Datalog is declarative, expressive, and optimizable, and has been applied successfully in a wide variety of problem domains. However, most use-cases require extending Datalog in an application-specific manner. In this paper we define Datafun, an analogue of Datalog supporting higher-order functional programming. The key idea is to track monotonicity with types.}},
added-at = {2019-03-01T00:11:50.000+0100},
author = {Arntzenius, Michael and Krishnaswami, Neelakantan R.},
biburl = {https://www.bibsonomy.org/bibtex/24125d7507bfbbcd82515f787f43dc665/gdmcbain},
citeulike-article-id = {14466295},
citeulike-linkout-0 = {http://dx.doi.org/10.1145/3022670.2951948},
day = 04,
doi = {10.1145/3022670.2951948},
interhash = {1b4111cf47bc78b591ac5097d9339114},
intrahash = {4125d7507bfbbcd82515f787f43dc665},
issn = {03621340},
journal = {ACM SIGPLAN Notices},
keywords = {68n15-programming-languages 68n17-logic-programming 68n18-functional-programming-and-lambda-calculus 68q01-theory-of-computing 68q55-semantics},
month = sep,
number = 9,
pages = {214--227},
posted-at = {2017-10-24 22:53:38},
priority = {4},
timestamp = {2019-03-01T00:11:50.000+0100},
title = {Datafun: a Functional {D}atalog},
url = {http://dx.doi.org/10.1145/3022670.2951948},
volume = 51,
year = 2016
}