<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"><prolog> ::= (<assertion> ".")*<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><assertion> :: = <structure> | <rule></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><rule> ::= <structure> ":-" <structure>("," <structure>)*<o:p></o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><structure> ::= <name> [“(“ <term> (“,” <term>)* “)”]</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><term> ::= <number> | <variable> | <structure></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><variable> ::= <name></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:p> </o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><name> is simply a String and <number> an Int</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"> </P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:p>This was my attempt feeble attempt but i ran into numerous errors... :</o:p></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:p></o:p> </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> </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>