Lucid (プログラミング言語)
Lucid (とその他のデータフロー言語)では、まだ束縛されていない変数を含む式は、変数が束縛されるまで待機してから実行される。x + y のような式は、x と y の双方が束縛されるまで待ってから式の値を返す。その結果重要なのは、関連する値を更新するためのロジックを明記しないという点であり、一般的な言語と比較してコード量を非常に少なくする事が出来る。
Lucid でのそれぞれの変数は値のストリームである。式 n = 1 fby n + 1 は、演算子 'fby' を使ってストリームを定義している。fby ('followed by' と読む) は直前の式の後に続く物を定義する。(この例では、ストリームは 1,2,3... を生成する。) ストリームの値は以下の演算子によって導かれる(使われる変数を x とする)。
'first x' - ストリーム x の最初の値を取得する。
'x' - ストリームの現在の値。
'next x' - ストリームの次の値を取得する。
'asa' - 条件が真になると何かを「出来るだけ早く (as soon as)」実行する演算子。
'x upon p' - upon はストリーム x の古い値を繰り返す演算子で、ストリーム p が真の時だけ新しい値に更新する。(これによりストリーム x の変化が遅くなる)。すなわち、x upon p は p が真の時に新しい値が現れるストリーム x である。
計算はフィルタ又は時間によって変化するデータの変換関数を定義する事によって実行される。
pLucid は Lucid の最初の実装だった。