Hi Tuh<div class="gmail_quote">2009/6/29 minh thu <span dir="ltr">&lt;<a href="mailto:noteed@gmail.com">noteed@gmail.com</a>&gt;</span><br><div> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div class="h5">&gt; First step solved. (BTW: I am attaching the first version to this e-mail. I<br>
&gt; will upload to Hackage upon completion, when getIEEE754float64le and<br>
&gt; putIEEE754float64le functions are done!)<br>
<br>
</div></div>Indeed, I found the binary format a difficulty for haskell. But in<br>
fact, hackage has a module that does the work:<br>
<a href="http://hackage.haskell.org/package/data-binary-ieee754" target="_blank">http://hackage.haskell.org/package/data-binary-ieee754</a><br>
<div class="im"></div></blockquote><div><br>Shame on me! :-( <br>If only I have posted this rant earlier! :-D <br> <br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">&gt; 2) Running the VM:<br>
&gt;<br>
&gt; This is the step I am working on. A really good and obvious approach to run<br>
&gt; the VM is to use a RWS monad, since:<br>
&gt;<br>
&gt;          a) I have a fixed environment (the program and the input ports)<br>
&gt;          b) I have a state (the program counter, the status register and the<br>
&gt; data memory contents)<br>
&gt;          c) I have a monoid output (the output ports)<br>
&gt;<br>
<br>
</div>Why a monad ? Why not just a function State -&gt; State and the use a function like<br>
iterate to do the work ?<br>
<div class="im"></div></blockquote><div><br>I am considering that using the monad all the state and environment threading will be simplified. The output part is optional. <br><br>But you are absolutely right, I could use a state composed by (Inputs, program counter, status, data), which would do just as well, as it is just a matter of not touching the program and the input.<br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im"><br>
&gt; 3) Controlling the sattelites<br>
&gt;<br>
&gt; This is going to be a piece of cake (aheeem! Just kidding!!). After<br>
&gt; computing the VM iteration, another computation will take the output data<br>
&gt; time series and estimate the next move.<br>
<br>
</div>The next move is easy to estimate : you have the vm and simulating code at hand.<br>
Of course, making the best move is another problem.<br>
<div class="im"></div></blockquote><div><br>I think the simulator itself is another State-&gt;State function, but this time the state is a [Output]. <br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im"><br>
</div>Good luck !<br>
<font color="#888888"></font></blockquote><div><br>Thanks! <br></div><div> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><font color="#888888">
</font></blockquote></div>Rafael Gustavo da Cunha Pereira Pinto<br><br>