www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Using std.random.uniform as a range

reply drug <drug2004 bk.ru> writes:
What is the best way to create range from uniform() function (in other 
words create a generator based on some function, returning, say, scalar, 
not range)? I did http://dpaste.dzfl.pl/53e3d9255cd7 but I'm not sure 
it's the best way. At least sequence using looks ugly
Aug 07 2015
parent reply =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
On 08/07/2015 06:59 AM, drug wrote:
 What is the best way to create range from uniform() function (in other
 words create a generator based on some function, returning, say, scalar,
 not range)? I did http://dpaste.dzfl.pl/53e3d9255cd7 but I'm not sure
 it's the best way. At least sequence using looks ugly
There is an undocumented (why?) Generator struct and generate() functin in std.range: import std.stdio; import std.range; import std.random; void main() { auto r = generate!(() => uniform(0, 6)) .take(10); writefln("%(%s %)", r); } Ali
Aug 07 2015
next sibling parent drug <drug2004 bk.ru> writes:
08.08.2015 01:34, Ali Çehreli пишет:
 On 08/07/2015 06:59 AM, drug wrote:
 What is the best way to create range from uniform() function (in other
 words create a generator based on some function, returning, say, scalar,
 not range)? I did http://dpaste.dzfl.pl/53e3d9255cd7 but I'm not sure
 it's the best way. At least sequence using looks ugly
There is an undocumented (why?) Generator struct and generate() functin in std.range: import std.stdio; import std.range; import std.random; void main() { auto r = generate!(() => uniform(0, 6)) .take(10); writefln("%(%s %)", r); } Ali
Oh, thank you very much! That's what doctor prescribed.
Aug 08 2015
prev sibling parent "Marc =?UTF-8?B?U2Now7x0eiI=?= <schuetzm gmx.net> writes:
On Friday, 7 August 2015 at 22:34:40 UTC, Ali Çehreli wrote:
 There is an undocumented (why?) Generator struct and generate() 
 functin in std.range:
It's new in 2.068, that's why it's missing in the current docs. It's already in the prerelease docs:
Aug 08 2015