Modern C++ Lamentations
Timon Gehr
timon.gehr at gmx.ch
Sun Dec 30 02:03:35 UTC 2018
On 29.12.18 10:29, Walter Bright wrote:
> http://aras-p.info/blog/2018/12/28/Modern-C-Lamentations/
>
> Time to show off your leet D skilz and see how good we can do it in D!
Current D:
---
import std.range, std.algorithm, std.typecons;
import std.bigint, std.stdio;
alias then(alias a)=(r)=>map!a(r).joiner;
void main(){
auto triples=recurrence!"a[n-1]+1"(1.BigInt)
.then!(z=>iota(1,z+1).then!(x=>iota(x,z+1).map!(y=>tuple(x,y,z))))
.filter!((t)=>t[0]^^2+t[1]^^2==t[2]^^2);
triples.each!((x,y,z){ writeln(x," ",y," ",z); });
}
---
tuple-syntax branch at https://github.com/tgehr/dmd/tree/tuple-syntax
---
import std.range, std.algorithm, std.typecons;
import std.bigint, std.stdio;
alias then(alias a)=(r)=>map!a(r).joiner;
void main(){
auto triples=recurrence!"a[n-1]+1"(1.BigInt)
.then!(z=>iota(1,z+1).then!(x=>iota(x,z+1).map!(y=>(x,y,z))))
.filter!((x,y,z)=>x^^2+y^^2==z^^2);
triples.each!((x,y,z){ writeln(x," ",y," ",z); });
}
---
More information about the Digitalmars-d
mailing list