From Eager PFL

keywords: Process functional language, imperative functional programming, lazy state evaluation, environment variables, monads, state transformers, Haskell
The state of a system is expressed using PFL, a process functional language, in an easily understandable manner. The paper presents PFL environment variable -- our basic concept for the state manipulation in the process functional language. Then we introduce the style in which stateful systems are described using monads and state transformers in pure lazy functional language Haskell. Finally, we describe our approach to lazy state manipulation in PFL and correspondence between state manipulation in PFL and the one in a pure lazy functional language Haskell. The proposed translation from eager PFL to a lazy Haskell provides an opportunity to exploit laziness for process functional programs and furthermore for imperative programs. The approach described in this paper was used in implemented PFL to Haskell code generator.
reference: Vol. 25, 2006, No. 1, pp. 61–80