<div dir="ltr">Hi Luke,<br><br>Thankyou so much.&nbsp; I need the sequence function.<br><br>What I was after was this:<br><br>class Scramblable a where<br>&nbsp;&nbsp; scramble :: a -&gt; [a]<br><br>instance Scramblable [MyType] where<br>
&nbsp;&nbsp; scramble values = sequence (map scramble values)<br><br>instance Scramblable MyType where<br>&nbsp;&nbsp; scramble myType = {- blah blah -}<br><br>I was basically after exhaustively generating lots ASTs given a template AST with lots of leaf values changed.<br>
<br>Thanks,<br><br>-John<br><br><div class="gmail_quote">On Thu, Oct 16, 2008 at 8:39 PM, Luke Palmer <span dir="ltr">&lt;<a href="mailto:lrpalmer@gmail.com">lrpalmer@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2008/10/16 John Ky &lt;<a href="mailto:newhoggy@gmail.com">newhoggy@gmail.com</a>&gt;:<br>
<div class="Ih2E3d">&gt; Hi,<br>
&gt;<br>
&gt; I&#39;ve written this function here:<br>
&gt;<br>
&gt; &nbsp; &nbsp;scramble [] = []<br>
&gt; &nbsp; &nbsp;scramble [x] = [[z] | z &lt;- scramble x]<br>
&gt; &nbsp; &nbsp;scramble (x:xs) =<br>
&gt; &nbsp; &nbsp; &nbsp; [(y:z)|y &lt;- scramble x, z &lt;- scramble xs]<br>
&gt;<br>
&gt; and (I think) it roughly does what I want it to:<br>
&gt;<br>
&gt; &nbsp; &nbsp;*Main&gt; scramble ([]::[Int])<br>
&gt; &nbsp; &nbsp;[]<br>
&gt; &nbsp; &nbsp;*Main&gt; scramble ([1]::[Int])<br>
&gt; &nbsp; &nbsp;[[1],[2]]<br>
<br>
</div>So, um, this is nonsense. &nbsp;You&#39;ve given it only 1, and yet it outputs<br>
a 2, yet there is no mention of addition or the literal 2 anywhere in<br>
your function.<br>
<br>
This function looks a lot like the more sensible:<br>
<br>
 &nbsp;scramble&#39; n xs = sequence (replicate n xs)<br>
<br>
&gt;&gt;&gt; scramble&#39; 0 [1,2,3]<br>
[[]]<br>
&gt;&gt;&gt; scramble&#39; 1 [1,2,3]<br>
[[1],[2],[3]]<br>
&gt;&gt;&gt; scramble&#39; 2 [1,2,3]<br>
[[1,1],[1,2],[1,3],[2,1],[2,2],[2,3],[3,1],[3,2],[3,3]]<br>
<br>
Where your examples all had [1,2] as the argument.<br>
<font color="#888888"><br>
Luke<br>
</font></blockquote></div><br></div>