On 10/20/2015 08:48 AM, Andrea Fontana wrote:
It happens I need to perform an operation just one time (inside a function, a loop...)
An idea that uses a function pointer where the first step does its task and then sets the stage for the following steps:
import std.stdio; import std.range; import std.algorithm; void firstStep() { writeln("First call!"); takeAStep = &followingSteps; } void followingSteps() { writeln("Just another call"); } auto takeAStep = &firstStep; void main() { 3.iota.each!(_ => takeAStep()); } First call! Just another call Just another call Ali