Not the most efficient, but easy to understand:
genbin 0 = []
genbin 1 = ["0", "1"]
genbin i =
map ('0' :) x ++ map ('1' :) x
where
x = genbin $ i - 1
On Fri, Oct 15, 2010 at 2:21 PM, rgowka1 wrote:
> Hi -
>
> How can I generate all binary string of a given length? The type
> signatur
Here's why it works:
genbin 3 = replicateM 3 "01" = (unfold replicateM) do x1 <- "01"; x2
<- "01" ; x3 <- "01"; return [x1,x2,x3] = your desired result
(enumerate all combinations of x1,x2,x3 with each being 0 or 1).
2010/10/15 Eugene Kirpichov :
> genbin = flip replicateM "01"
>
> 2010/10/15 rgo
genbin = flip replicateM "01"
2010/10/15 rgowka1 :
> Hi -
>
> How can I generate all binary string of a given length? The type
> signature would something like -
>
> genbin :: Int -> [String]
>
> For example genbin 2 would give ["00","11","01","10"] and genbin 3
> would give ["000","001","010","01
Hi -
How can I generate all binary string of a given length? The type
signature would something like -
genbin :: Int -> [String]
For example genbin 2 would give ["00","11","01","10"] and genbin 3
would give ["000","001","010","011","100","101","110","111"] etc..
thanks..
___