Results 11 
12 of
12
Modelling Asynchronous Streams in Haskell
, 1994
"... This paper explores the use of Haskell to model discretetime signals, or streams, with an emphasis on application to signal processing. Because of the deterministic nature of functional programs, asynchronous streams must be modelled by explicitly including time. Two types of asynchronous stream ar ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
This paper explores the use of Haskell to model discretetime signals, or streams, with an emphasis on application to signal processing. Because of the deterministic nature of functional programs, asynchronous streams must be modelled by explicitly including time. Two types of asynchronous stream are examined: hiatonic streams, and timestamped streams. A number of utility functions for manipulating asynchronous streams are presented, and their use demonstrated with examples. 1 Introduction Lazy functional languages such as Haskell [4] support infinite data structures. Infinite sequences are the most commonlyused of such structures, and are a natural choice for modelling discretetime signals. These are often called "streams." With streams, it is straightforward to construct networks of processes [7, 12]. These networks can also be viewed as largegrain dataflow graphs [8], which is more in tune with the viewpoint of signal processing computation. Although lazy lists are often used t...
On the representation of McCarthy’s ambin the πcalculus
, 2004
"... We study the encoding of λ [] , the call by name λcalculus enriched with McCarthy’s amb operator, into the πcalculus. Semantically, amb is a challenging operator, for the fairness constraints that it expresses. We prove that, under a certain interpretation of divergence in the λcalculus (weak div ..."
Abstract
 Add to MetaCart
We study the encoding of λ [] , the call by name λcalculus enriched with McCarthy’s amb operator, into the πcalculus. Semantically, amb is a challenging operator, for the fairness constraints that it expresses. We prove that, under a certain interpretation of divergence in the λcalculus (weak divergence), a faithful encoding is impossible. However, with a different interpretation of divergence (strong divergence), the encoding is possible, and for this case we derive results and coinductive proof methods to reason about λ [] that are similar to those for the encoding of pure λcalculi. We then use these methods to derive the most important laws concerning amb. We take bisimilarity as behavioural equivalence on the πcalculus, which sheds some light on the relationship between fairness and bisimilarity.