Dconf 2015 talks...

Joseph Rushton Wakeling via Digitalmars-d digitalmars-d at puremagic.com
Mon Jan 25 23:20:06 PST 2016


On Monday, 25 January 2016 at 23:37:25 UTC, Andrei Alexandrescu 
wrote:
> On 01/25/2016 05:05 PM, Joseph Rushton Wakeling wrote:
>> One option would be to implement the basic RNG data structor à 
>> la C++,
>> as a functor
>
> That's semantically the same as an input range. -- Andrei

“Yes, but...” :-P

There are actually some interesting subtleties required for the 
input range design, not just for RNGs but for ANY range whose 
elements are generated randomly.

I will try and write this up properly later, but the TL;DR is, it 
involves doing extra work to ensure every element is _truly_ 
lazily evaluated.

To some extent, splitting into functor and range wrapper can help 
clarify the code design there (even if the functor stays hidden 
as an implementation detail).


More information about the Digitalmars-d mailing list