m ((1) - →Fast-food: Values in the ``Snapshot'' and ``Input'' cells were incidenttally the same, which was confusing. Altering the input values. (2) Comments on syntax used in the Lucid code example)
m (→Fast-food: Rephrase comments on syntax of Lucid code example, using term ``didactic intermediate syntax'')
Revision as of 21:45, 11 June 2006
Weblogs Forum: Fluid Programming in Lucid -- good examples, and very good links.
Wikipedia article (yet a stub, but useful links).
The most detailed online material on the details of this language I could find: Raganswamy Jagannathan, Chris Dodd. GLU programmer's guide (downloadable as the 4th paper of GIPSY Publications). The first pages seem to discuss other problems, but it is worth of reading further, because a detailed description of Lucid's syntax and semantics is hiding inside this paper (section 3.1.2 on pages 22--38). This paper is part of the Gipsy Project Home Page (GIPSY: A General Intensional Programming System).
A fast-food implementation:
written to mimick and test the following Lucid example (I have made it a little Haskell-like -- it is not original Lucid syntax, but it is not an embedding into Haskell language, either -- in fact, it is a didactic intermediate syntax):
average n = sum n / card sum n = first n `fby` (sum n + next n) card = 1 `fby` succ card
This program counts the moving average of the input stream:
fby are not necessarily primitives in Lucid, but this fast-food implementation treats them as primitives.
A better implementation could be written using the arrow library available at the Downloads page of Arrows: A General Interface to Computation written by Antony Courtney, Henrik Nilsson and Ross Paterson.
A professional approach based on comonads: see The Essence of Dataflow Programming paper written by Tarmo Uustalu. Comments on this paper can be found on Lambda the Ultimate (but the link to the mentioned given there seems to be broken, I have given an updated one here). The links to pages introducing the concept of comonad are Comonads and Haskell written by Einar Karttunen.