[Haskell-beginners] How to write replicateM with interspersedguards?
anyzhen
jiangzhen3s at qq.com
Tue Oct 4 15:23:59 CEST 2011
like this?
let inits' xs = drop 1 $ inits xs in
let getLists n m = inits' take n (repeat m) in
f m n =map (\x-> guard $ f x) xs
where xs =getLists n m
------------------ Original ------------------
From: "Sebastien Zany";
Date: 2011年10月4日(星期二) 晚上8:27
To: "Haskell Beginners";
Subject: [Haskell-beginners] How to write replicateM with interspersedguards?
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20111004/e72583ad/attachment.htm>
More information about the Beginners
mailing list