Function called twice

Jordan Wilson wilsonjord at gmail.com
Fri Aug 2 21:44:28 UTC 2019


Hello,

I don't quite understand why isEven is called twice in the 2nd 
example?

auto isEven(int n) {
	n.writeln;
	return (n % 2) == 0;
}

void main() {

	auto z = [1,2,3];
	
	// outputs 1 2 3
	z.map!(a => tuple!("number")(a))
	 .filter!(a => a.number.isEven)
	 .array;

	// outputs 1 2 2 3
	z.map!(a => tuple!("number","iseven")(a, a.isEven))
	 .filter!(a => a.iseven)
	 .array;

	return;
}

Thanks,

Jordan


More information about the Digitalmars-d-learn mailing list