Hostname: page-component-77f85d65b8-6c7dr Total loading time: 0 Render date: 2026-04-18T10:22:07.303Z Has data issue: false hasContentIssue false

Purely functional lazy nondeterministic programming

Published online by Cambridge University Press:  16 August 2011

Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Functional logic programming and probabilistic programming have demonstrated the broad benefits of combining laziness (nonstrict evaluation with sharing of the results) with nondeterminism. Yet these benefits are seldom enjoyed in functional programming because the existing features for nonstrictness, sharing, and nondeterminism in functional languages are tricky to combine. We present a practical way to write purely functional lazy nondeterministic 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 nondeterministic components, by working with custom monadic data types and search strategies, and by providing equational laws for the programmer to reason about their code.

Information

Type
Articles
Copyright
Copyright © Cambridge University Press 2011
Submit a response

Discussions

No Discussions have been published for this article.