*** Welcome to piglix ***

Direct style


In computer programming, direct style is the usual style of sequential programming, in which control is passed implicitly by simply going to the next line, by subroutine calls, or by constructs such as return, yield, or await. It is contrasted with continuation-passing style, in which control is passed explicitly in the form of a continuation. Direct style programming is widely viewed as easier to write and understand than continuation-passing style, and thus a number of programming language constructs exist to eliminate or minimize the need to explicitly use continuations.

In mainstream languages continuation-passing style primarily occurs by passing closures as callbacks (function arguments), and thus direct style more simply means that functions return a value, rather than taking a function argument.

Programming constructs that enable direct style programming include coroutines, which in turn can implement generators and futures, all of which enable a direct style.

For example, in Dart, an animation loop may be written in the following way:

In CPS, the asynchronous call window.animationFrame waits for the next frame, then calls the callback, which requires a callback function and a tail call.

In direct style, the asynchronous call window.animationFrame simply yields control, then continues, and while loop can be used instead of a callback.



...
Wikipedia

...