Temporal recursion is a neat and terse way of representing time in functional programming. Andrew Sorensen has used it heavily in his Impromptu and more current Extempore live programming languages, and Dave Griffiths has followed suit in recent versions of SchemeBricks. Andrew has now posted up an article looking in detail at the usefulness of this construction, from the abstract:
For some people, a temporal recursion is a variation on recursively timed events/tasks, for others it is a concurrency vehicle closely related to co-routines, and finally for others it is a vehicle for managing on-the-fly code hot-swapping at runtime. And yet, temporal recursion, as implemented in Extempore/Impromptu, draws together these ideas to become greater than the sum of its parts. By providing explicit temporal semantics, and explicit management of control-state, temporal recursion supports the end-user development of powerful time and concurrency abstractions. Temporal recursions are a unique tool that deserve to have an identity of their own.
Read the full article here.