<html><div style='background-color:'><DIV>
<P>Hello, I'm fairly new to haskell and functional programming and i'm still trying to get my head around certain concepts.</P>
<P>I'm wondering if anyone can help me convert this abstract syntax into Haskel data and type declarations:</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">&lt;prolog&gt; ::= (&lt;assertion&gt; ".")*<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">&lt;assertion&gt; :: = &lt;structure&gt; | &lt;rule&gt;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">&lt;rule&gt; ::= &lt;structure&gt; ":-" &lt;structure&gt;("," &lt;structure&gt;)*<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">&lt;structure&gt; ::= &lt;name&gt; [“(“ &lt;term&gt; (“,” &lt;term&gt;)* “)”]</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">&lt;term&gt; ::= &lt;number&gt; | &lt;variable&gt; | &lt;structure&gt;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">&lt;variable&gt; ::= &lt;name&gt;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:p>&nbsp;</o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">&lt;name&gt; is simply a String and &lt;number&gt; an Int</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:p>This was my attempt feeble attempt but i ran into numerous errors...&nbsp;:</o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:p></o:p>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">type Prolog = Assertion</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">data Assertion = Structure | Rule<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">type Rule = Structure Structure (Structure)<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">type Structure = Name [ Term (Term)]<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">data Term = Number | Variable | Structure<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">type Variable = String<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">type Name = String<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">type Number = Int</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:p>&nbsp;</o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">Any help would be appreciated<o:p></o:p></P>
<P>TIA</P>
<P>Patrick.<BR></P></DIV></div><br clear=all><hr>Hot chart ringtones and polyphonics. <a href="http://g.msn.com/8HMBENAU/2737??PS="> Click here.</a> </html>