TY  - JOUR
JF  - Fundamenta Informaticae
A1  - Jeannin, J-B
A1  - Kozen, D
A1  - Silva, A
KW  - Functional programming
KW  -  coinductive types
KW  -  recursive types
KW  -  coalgebra
N2  - Functional languages offer a high level of abstraction, which results in programs that are elegant and easy to understand. Central to the development of functional programming are inductive and coinductive types and associated programming constructs, such as pattern-matching. Whereas inductive types have a long tradition and are well supported in most languages, coinductive types are subject of more recent research and are less mainstream.

We present CoCaml, a functional programming language extending OCaml, which allows us to define recursive functions on regular coinductive datatypes. These functions are defined like usual recursive functions, but parameterized by an equation solver. We present a full implementation of all the constructs and solvers and show how these can be used in a variety of examples, including operations on infinite lists, infinitary ?-terms, and p-adic numbers.
ID  - discovery1523431
UR  - http://dx.doi.org/10.3233/FI-2017-1473
SN  - 0169-2968
IS  - 3-4
TI  - CoCaml: Functional Programming with Regular Coinductive Types
VL  - 150
AV  - public
Y1  - 2017/03/03/
SP  - 347
EP  - 377
ER  -