A robust software component fulfills a contract: it expects data satisfying a certain property and promises to return data satisfying another property. The object-oriented community uses the design-by-contract approach extensively. Proposals for language extensions that add contracts to higher-order functional programming have appeared recently. In this paper we propose an embedded domain-specific language for typed, higher-order and first-class contracts, which is both more expressive than previous proposals, and allows for a more informative blame assignment. We take some first steps towards an algebra of contracts, and we show how to define a generic contract combinator for arbitrary algebraic data types. The contract language is implemented as a library in Haskell using the concept of generalised algebraic data types. © Springer-Verlag Berlin Heidelberg 2006.
CITATION STYLE
Hinze, R., Jeuring, J., & Löh, A. (2006). Typed contracts for functional programming. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 3945 LNCS, pp. 208–225). Springer Verlag. https://doi.org/10.1007/11737414_15
Mendeley helps you to discover research relevant for your work.