Functional programming and input/output
Functional programming and input/output
Proceedings of the first ACM SIGPLAN international conference on Functional programming
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Implicit parameters: dynamic scoping with static types
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Behavioural differential equations: a coinductive calculus of streams, automata, and power series
Theoretical Computer Science
Algorithm + strategy = parallelism
Journal of Functional Programming
Runtime support for multicore Haskell
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Seq no more: better strategies for parallel Haskell
Proceedings of the third ACM Haskell symposium on Haskell
The essence of dataflow programming
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Hi-index | 0.00 |
In functional programming, the general technique for supporting stream-based computations is by means of (higher-order) functions external to the underline stream's structure. The proposal of this paper is orthogonal to this view and it is based on an alternative representation of streams that allows employing different functions as stream's constructors (re-constructors). The internal computation prescribed by a stream is realised by constructing the stream with its own re-constructors. This provides us with a computationally more active and self-contained stream's notion that allows: (1) deriving new re-constructors by combining other re-constructors, (2) specifying dataflow computations directly inside streams and, dually, (3) defining re-constructors out of dataflow combinators. Moreover, this modelling supports to some degree parallel (sequential) evaluations of unbounded (recursive) structures in the style of Evaluation Strategies. All these possibilities are achieved thanks to a comonadic development able to capture co-inductive streams, parallelism (sequentiality) and causality aspects directly.