<html><div style='background-color:'><DIV class=RTE>
<P>Hey,</P>
<P>I have been trying to program a simple Haskell program that allows me to input a list of Java files and their dependencies (i.e. other files which they rely upon) and have come across some very stubborn problems.</P>
<P>&gt; semiColon :: Char -&gt; Bool<BR>&gt; semiColon ':' = True<BR>&gt; semiColon _ = False</P>
<P>&gt; getFDepend :: String -&gt; String<BR>&gt; getFDepend file = reverse(stripEX(reverse(fst(break semiColon file))))</P>
<P>&gt; getDepends :: String -&gt; [String]<BR>&gt; getDepends depend = words(stripEX(snd(break semiColon depend)))</P>
<P>&gt; getArray :: [String] -&gt; [File]<BR>&gt;getArray [a]<BR>&gt; | length[a] == 1 = [parseFile (head[a])]<BR>&gt; | otherwise = [parseFile (head[a])] &amp;&amp; (getArray (tail[a]))</P>
<P>&gt; -- WRITE parseDependency, 12 marks</P>
<P>&gt; parseDependency :: String -&gt; Dependency<BR>&gt; parseDependency ds = (Dependency (parseFile(getFDepend(ds))) [getArray(getDepends ds)])</P>
<P>&nbsp;</P>
<P><BR>&gt; fullStop :: Char -&gt; Bool<BR>&gt; fullStop '.' = True<BR>&gt; fullStop _ = False</P>
<P>Removes leading whitespace and fullstops</P>
<P>&gt; stripEX :: String -&gt; String<BR>&gt; stripEX [] = []<BR>&gt; stripEX (a:ab)<BR>&gt;&nbsp; | isSpace a = stripEX ab<BR>&gt;&nbsp; | fullStop a = stripEX ab<BR>&gt;&nbsp; | semiColon a = stripEX ab<BR>&gt;&nbsp; | otherwise = (a:ab)</P>
<P>Gets the filename</P>
<P>&gt; getFirst :: String -&gt; String<BR>&gt; getFirst filename = fst (break fullStop filename)</P>
<P>Gets the unformated extension</P>
<P>&gt; formatLast :: String -&gt; String<BR>&gt; formatLast ext = snd (break fullStop ext)</P>
<P>Formats the extension</P>
<P>&gt; getLast :: String -&gt; String<BR>&gt; getLast ext = stripEX(reverse (stripEX (reverse (formatLast(ext)))))</P>
<P>&gt; parseFile :: String -&gt; File<BR>&gt; parseFile name = File { basename = (getFirst(name)), ext = classifyExtension(getLast(name)) }<BR></P>
<P>For some reason my getArray function keeps kicking up a program. I am unsure if&nbsp;I have done this correctly. What I was aiming to do was take a List of strings ("A.java", "B.java") and create a File type for each of them, then add this to an array which would be returned at the end.</P>
<P>Anyone know a better method or what is wrong?</P>
<P>-Mike</P></DIV></div></html>