On 10/23/06, jim burton &lt;<a href="mailto:jim@sdf-eu.org">jim@sdf-eu.org</a>&gt; wrote:<br>&gt; <br>&gt; I want to split a string into 5 parts of equal length, with the last fifth<br>&gt; padded if necessary, but can't get it right
<br><br>I got this:<br><br>fifths :: String -&gt; String<br>fifths xs = let len = (length xs + 4) `div` 5<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; padded = take (len * 5) (xs ++ &quot;&nbsp;&nbsp;&nbsp;&nbsp; &quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in unwords $ nth len padded
<br>&nbsp;&nbsp;&nbsp; where nth _ [] = []<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nth n xs = (take n xs) : (nth n $ drop n xs)<br><br>&gt; *Main&gt; fifths &quot;IDOLIKETOBEBESIDETHESEASIDE&quot;<br>&gt; &quot;IDOLI KETOBE BESIDE THESEA SIDEXX&quot;<br>&gt; *Main&gt; fifths &quot;12345&quot;
<br>&gt; &quot;1 23 45&quot;<br><br>This gives the following results:<br><br>&quot;IDOLIK ETOBEB ESIDET HESEAS IDE&nbsp;&nbsp; &quot;<br><br>and<br><br>&quot;1 2 3 4 5&quot;<br><br>But it also gives this result, which may or may not be correct for your problem:
<br><br>*Main&gt; fifths &quot;123456&quot;<br>&quot;12 34 56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;<br><br>-- <br>Rich<br><br>AIM : rnezzy<br>ICQ : 174908475<br>