Thread overview
dlang.org/Learn "hello_world".sort.chain ...
Dec 26
Tony
Dec 26
Sergey
Dec 26
tony
Dec 26
Sergey
December 26

I just typed in the program that is on the first page of Learn. It has this line:

sort(chain(arr1, arr2, arr3));

I assigned that to a variable:

arr4 = sort(chain(arr1, arr2, arr3));

then printed it out

writefln("%s",arr4); // works

and then tried to print out the type of arr4:

writefln("%s",typeof(arr4));

and got this error:

// HelloWorld.d:25:19: error: cannot pass type SortedRange!(Result, "a < b") as a function argument

What exactly is that type? Or maybe, what would it take to understand what that type is?

December 26

On Tuesday, 26 December 2023 at 10:53:10 UTC, Tony wrote:

>

I just typed in the program that is on the first page of Learn. It has this line:

sort(chain(arr1, arr2, arr3));

I assigned that to a variable:

arr4 = sort(chain(arr1, arr2, arr3));

then printed it out

writefln("%s",arr4); // works

and then tried to print out the type of arr4:

writefln("%s",typeof(arr4));

and got this error:

// HelloWorld.d:25:19: error: cannot pass type SortedRange!(Result, "a < b") as a function argument

What exactly is that type? Or maybe, what would it take to understand what that type is?

Use typeid, instead of typeof

December 26

On Tuesday, 26 December 2023 at 11:19:29 UTC, Sergey wrote:

>

Use typeid, instead of typeof

Thanks!

Got quite a type but I will worry about that later: std.range.SortedRange!(Result, "a < b").SortedRange

December 26

On Tuesday, 26 December 2023 at 13:58:54 UTC, tony wrote:

>

On Tuesday, 26 December 2023 at 11:19:29 UTC, Sergey wrote:

>

Use typeid, instead of typeof

Thanks!

Got quite a type but I will worry about that later: std.range.SortedRange!(Result, "a < b").SortedRange

Yes, because sort is returning special type, compatible with Ranges interface.
You can add 'sort(...).array' and the type will become 'int[]' (or which types arrays were before).

Ranges are specific things for D (one of the core feature of the lang and std), which can evaluated lazily. You can check some description how they are working in the documentation https://dlang.org/phobos/std_range.html