On Saturday, 4 February 2017 at 14:35:37 UTC, ag0aep6g wrote:
On 02/04/2017 12:31 PM, Profile Anaysis wrote:
I am trying to iterate over the combinations of a set using the code

https://rosettacode.org/wiki/Power_set#D

I have an array which I call powerSet on and I get a result of
MapResult. I have tried to foreach or front/popFront and even each() on it but I can never get the result as the same array type that I started
with.

To create an array from a range, you can use std.array.array:

http://dlang.org/phobos/std_array.html#.array

What is MapResult(the algorithm that generates the result lazily?)

Yes, it's a struct that gives you one element at a time, lazily generated.

and
how do we easily iterate over the results like we would with an array?

foreach and empty/front/popFront should both work. If you can't get them to work, show what you tried.

well, I simply took the code from the page I linked and did a front() on the MapResult and it say the type was wrong. I thought it would give me the type I put in which was an array.

I guess maybe I needed to convert it to an array though... but I didn't try. I moved on it iterating over it manually.

someStruct[] X;
someStruct[] x = powerSet(X).popFront();

gave me an error. Was saying I was getting another MapResult, which I thought it shouldn't but maybe I just needed to convert it to an array.



Reply via email to