The issue I see with this is chaining multiple operations. In the example he stores the result before the next operation.
Let's look at an alternative way to make it readable.
// Original breakup, but written in D
autonumbers=[1,2,3,4,5,6];autoodd_numbers=filter!(n=>n%2==1)(numbers);autosquared_odd_numbers=map!(n=>n*n)(odd_numbers);// fold is another name used for reduce
autototal1=fold!((acc,n)=>acc+n)(squared_odd_numbers,0);// chain operation
autototal2=numbers.filter!(n=>n%2==1).map!(n=>n*n).fold!((acc,n)=>acc+n)(0);// Name the lambda operation
aliasodds=x=>x%2==1;aliassquare=x=>x*x;aliassum=(acc,n)=>acc+n;autototal3=numbers.filter!odds.map!square.fold!sum(0);assert(total1==total2);assert(total3==total2);
The language isn't the driving force for readability here.
If you look closely D does provide usage challenges since I introduced the use of alias. Explaining its need would be more technical than lambda : is that a bad thing? I don't know.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Just stumbled acrossed this
medium.com/better-programming/how-...
The issue I see with this is chaining multiple operations. In the example he stores the result before the next operation.
Let's look at an alternative way to make it readable.
The language isn't the driving force for readability here.
If you look closely D does provide usage challenges since I introduced the use of alias. Explaining its need would be more technical than
lambda :
is that a bad thing? I don't know.