<div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">You don&#39;t need to register first (I&#39;ve always found the website a bit<br>confusing in this regard).
</blockquote><div><br>I stumbled upon the right page just before writing an e-mail trying to prove myself worthy( having read CleanBook beforehand , scientific intent , ... ) for access to the system.<br> </div><br><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I am not sure there really is a<br>semantic difference between using a &quot;lookup&quot; (using let* or #!) which<br>does not return a new array or using a &quot;uselect&quot; which returns a pair of<br>a new array and the item requested. You claim that the latter increases
<br>the degree of sequentialization, but I&#39;m not sure that is correct. The<br>point of let* x = e1 in e2 is that e1 _must_ be evaluated before e2 is<br>evaluated.</blockquote><div><br>He probably meant having to sequentially feed a read operation with an array returned by another read operation.
<br></div><br><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">One more thought: let* allows to define a number of variables at the<br>same time, so that the two lookups for x and y could be done in either
<br>order; I&#39;m not sure #! in Clean allows that</blockquote><div><br>Looks like it does with # but not #!.<br><br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
although I suppose you<br>could probably do something like<br><br>&nbsp;&nbsp;#! (x,y) = (lookup a i, lookup b j)<br><br>(not sure if that is valid Clean syntax, not tested - but I&#39;d presume<br>so).<br></blockquote></div><br>//disallowed
<br>( x , y ) = ( a , b )<br><br>//allowed<br>( x , y ) = temp<br>where<br>&nbsp;&nbsp;&nbsp; temp = ( a , b )<br><br>//allowed<br>( x , y ) = let temp = ( a , b ) in temp<br>