Some ML-family languages such as OCaml allow the definition of coinductive types as well as their inhabitants using a let rec construct. An example of such elements is coinductive streams. However, there is very little that one can do to manipulate them: pattern matching on the top elements is possible, but recursion will never finish. More importantly, it is virtually impossible to generate coinductive elements on the fly. Recent work with the CoCaml language has started fixing this issue, but it is limited to regular coinductive types, that is where the elements eventually point to themselves. For coinductive streams, this corresponds to streams that have a pattern that eventually repeats (e.g., [3;4;5;1;2;1;2;1;2]). In this talk we will show how to build on well-established theory on rational streams – a much more comprehensive family of streams – to extend CoCaml to deal with those rational streams.
Conference DayThu 22 AugDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
13:30 - 15:00
|Transparent Synchronous Dataflow|
Steven CheungUniversity of Birmingham, UKFile Attached
|Programming with Rational Coinductive Streams|
Jean-Baptiste JeanninUniversity of Michigan, USAFile Attached
|Efficient Deconstruction with Typed Pointer Reversal|