How to use import std.algorithm.iteration.permutations?
Basile B.
b2.temp at gmx.com
Sun Apr 19 20:25:23 UTC 2020
On Sunday, 19 April 2020 at 17:57:21 UTC, David Zaragoza wrote:
> Hi
>
> When I try to build the following:
>
> import std.algorithm.iteration;
>
> void test(int[] array);
>
> void main()
> {
> int[] a = [1,1,2,2,3,3];
> foreach (p; a.permutations)
> {
> test(p);
> }
> }
>
> I get the error:
>
> .\permutations_example.d(10): Error: function
> permutations_example.test(int[] array) is not callable using
> argument types (Indexed!(int[], ulong[]))
> .\permutations_example.d(10): cannot pass argument p of
> type Indexed!(int[], ulong[]) to parameter int[] array
>
> What's the proper way to obtain the array of permutations of a?
>
> Kind regards
> David
`permutation()` returns a lazy range (i.e an iterator). To turn a
permutation into a concrete data type use .array on each one.
---
void test(int[] array){}
void main()
{
int[] a = [1,1,2,2,3,3];
foreach (p; a.permutations)
{
test(p.array);
}
}
---
More information about the Digitalmars-d-learn
mailing list