On Wednesday, 17 September 2025 at 22:16:50 UTC, Brother Bill wrote:
In the following from Programming in D, page 483, we use function keyword.

I expect that the first int in
```
int function(int);
```

represents the return value.

What does the second (int) refer to?

Then there is another example with 'delegate' instead of 'function.

```
import std.stdio;

void main()
{

}

alias Calculator = int function(int);

Calculator makeCalculator()
{
        int increment = 10;
        return value => increment + value; // ← compilation ERROR
}

```

To give a proper reply, `function` is the a function pointer type, in D function pointers are strongly typed using this keyword. `delegate` is a function pointer but with extra data along with it, to eg. a class function would be a delegate due to the hidden `this` pointer that tags along.

in this case `int function(int)` means "A function which takes an integer argument, and returns an integer."

Reply via email to