<br><br><div class="gmail_quote">On Tue, Nov 3, 2009 at 1:37 PM, Andrew Coppin <span dir="ltr">&lt;<a href="mailto:andrewcoppin@btinternet.com">andrewcoppin@btinternet.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">Deniz Dogan wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Recently there has been a lot of discussion on this list about the<br>
programming language Clean and converting Clean programs to Haskell.<br>
Reading the Wikipedia article on the language, I can&#39;t really see any<br>
major difference between that and Haskell, except for the monads vs.<br>
uniqueness types.<br>
<br>
So what&#39;s the deal with Clean? Why is it preferable to Haskell? Why is it not?<br>
  <br>
</blockquote>
<br></div>
As far as I can tell, Clean is to Haskell as C is to Pascal. I.e., Clean is notionally very similar to Haskell, but with lots of added clutter, complexity and general ugliness - but it&#39;s probably somehow more machine-efficient as a result.<br>

<br>
(All of which makes the name &quot;Clean&quot; rather ironic, IMHO.)<br>
<br>
Of course, this is merely the opinion I formed after performing a cursory scan of some of the introductory documentation. I haven&#39;t actually seen any code written with it or anything, so my opinion probably doesn&#39;t mean a lot...<div>
<div></div><div class="h5"><br></div></div></blockquote><div><br></div><div>It&#39;s preferable to Haskell in situations where Haskell isn&#39;t the best choice.</div><div><br></div><div>The criteria for that decision is different from problem to problem.</div>
<div><br></div><div>Example:</div><div><br></div><div>I had to implement a ring buffer, and I wanted the code using it to be written in Haskell.  I ended up implementing the buffer in C, and wrapping it in FFI from Haskell because implementing a destructive array in Haskell is kind of unwieldy to someone of my experience level.  In Clean, it looks like the uniqueness typing allows for destructive updates in a very controlled manner.</div>
<div><br></div><div>Disciplined Disciple might be interesting to look at here too, but i&#39;m not sure I&#39;d deploy anything with DDC just yet :-)</div><div><br></div><div>Dave</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div class="h5">
<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br>