<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
Hey Matthijs<BR>&nbsp;&nbsp;&nbsp;&nbsp; Thanks for replying, and that might help. I will try with it to see if it works, and&nbsp;I am still looking for the answer myself. If there is anyone has worked with the Haskell to VHDL translater, plz let me know cause&nbsp;I have many to&nbsp;discuss.<BR>
Thanks<BR>
&nbsp;<BR>
Hanyi&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&gt; Date: Tue, 10 Mar 2009 20:23:57 +0100<BR>&gt; From: matthijs@stdin.nl<BR>&gt; To: wanghanyi21@hotmail.com<BR>&gt; CC: haskell-cafe@haskell.org<BR>&gt; Subject: Re: [Haskell-cafe] Using FosSyDe to translate haskell to VHDL.<BR>&gt; <BR>&gt; Hi Hany,<BR>&gt; <BR>&gt; &gt; *Plus2&gt; writeVHDL plus2SysDef<BR>&gt; &gt; *** Exception: VHDL Compilation Error: Untranslatable function: where constructs are not supported in functions:<BR>&gt; &gt; where addOnef_0 = n_1 GHC.Num.+ 1<BR>&gt; &gt; in process function `addTwof' (created in Plus2) used by process `plus2Proc' belonging to system definition `plus2' (created in &lt;unkown&gt;)<BR>&gt; I don't know much about ForSyDe, but it seems that where clauses simply aren't<BR>&gt; supported. Perhaps let expressions are?<BR>&gt; <BR>&gt; The would mean something like the following:<BR>&gt; <BR>&gt; addTwof :: ProcFun (Int32 -&gt; Int32)<BR>&gt; addTwof = $(newProcFun [d|addTwof :: Int32 -&gt; Int32<BR>&gt; let addOnef = n +1 in<BR>&gt; addTwof n = addOnef+1<BR>&gt; |])<BR>&gt; <BR>&gt; (Not sure if this is completely valid code, I'm not too familiar with TH..).<BR>&gt; <BR>&gt; Gr.<BR>&gt; <BR>&gt; Matthijs<BR><BR><br /><hr />使用新一代 Windows Live Messenger 轻松交流和共享! <a href='http://im.live.cn/messenger.aspx' target='_new'>立刻下载!</a></body>
</html>