alias vs enum for lambdas?

monkyyy crazymonkyyy at gmail.com
Fri May 2 16:53:05 UTC 2025


On Friday, 2 May 2025 at 13:55:46 UTC, Orion wrote:
> Yes. But at the same time, defining a function via alias is a 
> 1st class function, unlike a standard function definition!
>
> alias af = (int x) => x;
> auto sf(int x) => x;
>
> auto v = af;
> auto p = &sf;
>
> This means that the definitions are not equivalent.
>
> In essence, an alias function behaves like a lambda function 
> assigned to a variable, but at the same time there is the 
> possibility of adhoc overloading, which is only possible for a 
> regular/standard function.

This is still a continuation of aliases are for types, enums for 
literals

```d
alias F=(i)=>i+1;
import std;
void main(){
	F(3).writeln;
	F(3.14).writeln;
}
```
F cant be enum here, because the type inference comes latter
taking a pointer needs to be literal


More information about the Digitalmars-d-learn mailing list