digitalmars.D.learn - How to use import std.algorithm.iteration.permutations?
- David Zaragoza (21/21) Apr 19 2020 Hi
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
Apr 19 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);
}
}
---
Apr 19 2020
On Sunday, 19 April 2020 at 20:25:23 UTC, Basile B. wrote:On Sunday, 19 April 2020 at 17:57:21 UTC, David Zaragoza wrote:forgot to put the imports: --- import std.algorithm.iteration, std.array; ---[...]`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); } } ---
Apr 19 2020








Basile B. <b2.temp gmx.com>