Re: dynamic format specifier possible?

2022-01-23 Thread forkit via Digitalmars-d-learn
On Sunday, 23 January 2022 at 22:08:28 UTC, Ali Çehreli wrote: You use an asterisk and provide the width as an argument. This one uses the length of the name of the program: import std; void main(string[] args) { int val = 999000; writefln("[%*s]", args.front.length, val); // [

Re: dynamic format specifier possible?

2022-01-23 Thread Ali Çehreli via Digitalmars-d-learn
On 1/23/22 13:59, forkit wrote: I would like to calculate the width of the format specifier dynamically, at runtime. You use an asterisk and provide the width as an argument. This one uses the length of the name of the program: import std; void main(string[] args) { int val = 999000;

dynamic format specifier possible?

2022-01-23 Thread forkit via Digitalmars-d-learn
I would like to calculate the width of the format specifier dynamically, at runtime. e.g int WIDTH = something.length; then my format specifier would be: %WIDTHs instead of %9s // --- module test; import std; void main() { int val = 999000; writefln("[%9s]", val); // [ 999000] }

Re: map question

2022-01-23 Thread Stanislav Blinov via Digitalmars-d-learn
On Sunday, 23 January 2022 at 09:38:57 UTC, Siarhei Siamashka wrote: On Sunday, 23 January 2022 at 09:08:46 UTC, Stanislav Blinov wrote: Using `iota` here incurs additional computation and argument copies that are actually never used, i.e. wasted work. So I'd say go with `generate`, as that

Re: map question

2022-01-23 Thread Siarhei Siamashka via Digitalmars-d-learn
On Sunday, 23 January 2022 at 09:08:46 UTC, Stanislav Blinov wrote: Using `iota` here incurs additional computation and argument copies that are actually never used, i.e. wasted work. So I'd say go with `generate`, as that seems the intent. Isn't this normally a compiler's job to eliminate

Re: map question

2022-01-23 Thread Stanislav Blinov via Digitalmars-d-learn
On Saturday, 22 January 2022 at 23:54:27 UTC, forkit wrote: On Saturday, 22 January 2022 at 19:55:43 UTC, Stanislav Blinov wrote: thanks for the explanation. That really helped :-) writeln( generate!(() => dice(0.6, 1.4)).take(howManyTimes) ); [1, 1, 1, 1, 0] (or after reading Ali's