Purely functional lazy non-deterministic programming

Sebastian Fischer, Oleg Kiselyov, Chung Chieh Shan

Research output: Chapter in Book/Report/Conference proceedingConference contribution

8 Citations (Scopus)

Abstract

Functional logic programming and probabilistic programming have demonstrated the broad benefits of combining laziness (non-strict evaluation with sharing of the results) with non-determinism. Yet these benefits are seldom enjoyed in functional programming, because the existing features for non-strictness, sharing, and nondeterminism in functional languages are tricky to combine. We present a practical way to write purely functional lazy non-deterministic programs that are efficient and perspicuous. We achieve this goal by embedding the programs into existing languages (such as Haskell, SML, and OCaml) with high-quality implementations, by making choices lazily and representing data with non-deterministic components, by working with custom monadic data types and search strategies, and by providing equational laws for the programmer to reason about their code. Copyrightc 2009 ACM.

Original languageEnglish
Title of host publicationICFP'09 - Proceedings of the 2009 ACM SIGPLAN International Conference on Functional Programming
Pages11-22
Number of pages12
DOIs
Publication statusPublished - 2009 Nov 27
Externally publishedYes
Event2009 ACM SIGPLAN International Conference on Functional Programming, ICFP'09 - Edinburgh, United Kingdom
Duration: 2009 Aug 312009 Sep 2

Publication series

NameProceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP

Other

Other2009 ACM SIGPLAN International Conference on Functional Programming, ICFP'09
CountryUnited Kingdom
CityEdinburgh
Period09/8/3109/9/2

Keywords

  • Call-time choice
  • Continuations
  • Monads
  • Side effects

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'Purely functional lazy non-deterministic programming'. Together they form a unique fingerprint.

  • Cite this

    Fischer, S., Kiselyov, O., & Shan, C. C. (2009). Purely functional lazy non-deterministic programming. In ICFP'09 - Proceedings of the 2009 ACM SIGPLAN International Conference on Functional Programming (pp. 11-22). (Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP). https://doi.org/10.1145/1596550.1596556