<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Looks good to me, but I'm just a
      beginner!<br>
      I used the isInfixOf from Data.List instead of =~ to run your
      example because the later wasn't working on my instalation. <br>
      <br>
      I've made a slightly variant using the break function:<br>
      <br>
      import Data.List<br>
      startTag = "&lt;bug&gt;"<br>
      endTag = "&lt;/bug&gt;"<br>
      <br>
      main = interact process<br>
      <br>
      process&nbsp; = unlines . extractSection startTag endTag . lines<br>
      extractSection start stop xs =<br>
      &nbsp; let (ls,rs) = break (isInfixOf stop) $ dropWhile (not .
      isInfixOf start) xs<br>
      &nbsp; in ls ++ take 1 rs<br>
      <br>
      <br>
      On 07/15/12 13:08, C K Kashyap wrote:<br>
    </div>
    <blockquote
cite="mid:CAGdT1goLUM8TxA=NtYuvMpdYaCkF5m_c6_Jb7FMU5-ZMERWqHg@mail.gmail.com"
      type="cite">Hi,
      <div>I've written a small haskell program to extract a section
        from a file between start and end markers. For example, if I
        have a file such as below -&nbsp;</div>
      <div>
        <div>a</div>
        <div>b</div>
        <div>c</div>
        <div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;bug&gt;</div>
        <div>d</div>
        <div>e</div>
        <div>f</div>
        <div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/bug&gt;</div>
        <div>g</div>
        <div>h</div>
        <div>i</div>
      </div>
      <div><br>
      </div>
      <div>I'd like to extract the contents between &lt;bug&gt; and
        &lt;/bug&gt; (including the markers).&nbsp;</div>
      <div><br>
      </div>
      <div>
        <pre style="margin-top:0px;margin-bottom:0px;font-size:13px;text-align:left;background-color:rgb(255,255,255)"><span class="hs-definition">startTag</span> <span class="hs-keyglyph">=</span> <span class="hs-str" style="color:rgb(54,99,84)">"&lt;bug&gt;"</span>
<span class="hs-definition">endTag</span> <span class="hs-keyglyph">=</span> <span class="hs-str" style="color:rgb(54,99,84)">"&lt;/bug&gt;"</span>

<span class="hs-definition">process</span>  <span class="hs-keyglyph">=</span> <span class="hs-varid" style="color:rgb(51,51,51)">unlines</span> <span class="hs-varop" style="color:rgb(51,51,51)">.</span> <span class="hs-varid" style="color:rgb(51,51,51)">specialTakeWhile</span> <span class="hs-layout">(</span><span class="hs-varid" style="color:rgb(51,51,51)">f</span> <span class="hs-varid" style="color:rgb(51,51,51)">endTag</span><span class="hs-layout">)</span> <span class="hs-varop" style="color:rgb(51,51,51)">.</span> <span class="hs-varid" style="color:rgb(51,51,51)">dropWhile</span> <span class="hs-layout">(</span><span class="hs-varid" style="color:rgb(51,51,51)">f</span> <span class="hs-varid" style="color:rgb(51,51,51)">startTag</span><span class="hs-layout">)</span> <span class="hs-varop" style="color:rgb(51,51,51)">.</span> <span class="hs-varid" style="color:rgb(51,51,51)">lines</span> 
        <span class="hs-keyword" style="color:rgb(57,116,96)">where</span> <span class="hs-varid" style="color:rgb(51,51,51)">f</span> <span class="hs-varid" style="color:rgb(51,51,51)">t</span> <span class="hs-varid" style="color:rgb(51,51,51)">x</span> <span class="hs-keyglyph">=</span> <span class="hs-varid" style="color:rgb(51,51,51)">not</span> <span class="hs-layout">(</span><span class="hs-varid" style="color:rgb(51,51,51)">x</span> <span class="hs-varop" style="color:rgb(51,51,51)">=~</span> <span class="hs-varid" style="color:rgb(51,51,51)">t</span><span class="hs-layout">)</span> 
              <span class="hs-varid" style="color:rgb(51,51,51)">specialTakeWhile</span> <span class="hs-keyglyph">::</span> <span class="hs-layout">(</span><span class="hs-varid" style="color:rgb(51,51,51)">a</span> <span class="hs-keyglyph">-&gt;</span> <span class="hs-conid" style="color:rgb(79,67,113)">Bool</span><span class="hs-layout">)</span> <span class="hs-keyglyph">-&gt;</span> <span class="hs-keyglyph">[</span><span class="hs-varid" style="color:rgb(51,51,51)">a</span><span class="hs-keyglyph">]</span> <span class="hs-keyglyph">-&gt;</span> <span class="hs-keyglyph">[</span><span class="hs-varid" style="color:rgb(51,51,51)">a</span><span class="hs-keyglyph">]</span>
              <span class="hs-varid" style="color:rgb(51,51,51)">specialTakeWhile</span> <span class="hs-varid" style="color:rgb(51,51,51)">ff</span> <span class="hs-conid" style="color:rgb(79,67,113)">[]</span> <span class="hs-keyglyph">=</span> <span class="hs-conid" style="color:rgb(79,67,113)">[]</span>
              <span class="hs-varid" style="color:rgb(51,51,51)">specialTakeWhile</span> <span class="hs-varid" style="color:rgb(51,51,51)">ff</span> <span class="hs-layout">(</span><span class="hs-varid" style="color:rgb(51,51,51)">x</span><span class="hs-conop">:</span><span class="hs-varid" style="color:rgb(51,51,51)">xs</span><span class="hs-layout">)</span> <span class="hs-keyglyph">=</span> <span class="hs-keyword" style="color:rgb(57,116,96)">if</span> <span class="hs-varid" style="color:rgb(51,51,51)">ff</span> <span class="hs-varid" style="color:rgb(51,51,51)">x</span> <span class="hs-keyword" style="color:rgb(57,116,96)">then</span> <span class="hs-varid" style="color:rgb(51,51,51)">x</span><span class="hs-conop">:</span><span class="hs-layout">(</span><span class="hs-varid" style="color:rgb(51,51,51)">specialTakeWhile</span> <span class="hs-varid" style="color:rgb(51,51,51)">ff</span> <span class="hs-varid" style="color:rgb(51,51,51)">xs</span><span class="hs-layou
 t">)</spa
n> <span class="hs-keyword" style="color:rgb(57,116,96)">else</span> <span class="hs-keyglyph">[</span><span class="hs-varid" style="color:rgb(51,51,51)">x</span><span class="hs-keyglyph">]</span></pre>
        <pre style="margin-top:0px;margin-bottom:0px;font-size:13px;text-align:left;background-color:rgb(255,255,255)"><span class="hs-keyglyph">
</span></pre>
        <pre style="margin-top:0px;margin-bottom:0px;font-size:13px;text-align:left;background-color:rgb(255,255,255)"><span class="hs-keyglyph">
</span></pre>
        <pre style="margin-top:0px;margin-bottom:0px;font-size:13px;text-align:left;background-color:rgb(255,255,255)"><span class="hs-keyglyph">It'll be great if I could get some feedback on this.</span></pre>
        <pre style="margin-top:0px;margin-bottom:0px;font-size:13px;text-align:left;background-color:rgb(255,255,255)"><span class="hs-keyglyph">
</span></pre>
        <pre style="margin-top:0px;margin-bottom:0px;font-size:13px;text-align:left;background-color:rgb(255,255,255)"><span class="hs-keyglyph">Regards,</span></pre>
        <pre style="margin-top:0px;margin-bottom:0px;font-size:13px;text-align:left;background-color:rgb(255,255,255)"><span class="hs-keyglyph">Kashyap</span></pre>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Beginners mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Beginners@haskell.org">Beginners@haskell.org</a>
<a class="moz-txt-link-freetext" href="http://www.haskell.org/mailman/listinfo/beginners">http://www.haskell.org/mailman/listinfo/beginners</a>
</pre>
    </blockquote>
    <br>
    <br>
  </body>
</html>