Just realized I used "f" twice, make the outer one something else.

On Tue, Oct 4, 2011 at 5:27 AM, Sebastien Zany <sebastien@chaoticresearch.com> wrote:
What would be the idiomatic way to write a function which expands to the following?

f n m = do {
x1 <- m;
guard (f [x1]);
x2 <- m;
guard (f [x1, x2]);
.
.
.
xn <- m;
guard (f [x1,x2,...,xn]);
}

What I'm trying to do is generate a list of lists of length n with some property (checked by f) efficiently.