On Thu, Nov 1, 2012 at 5:03 AM, Emmanuel Touzery <span dir="ltr">&lt;<a href="mailto:etouzery@gmail.com" target="_blank">etouzery@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

Thank you that is very interesting... this is really impressive with haskell that it&#39;s so &quot;easy&quot; to add such operators, that they don&#39;t need to be builtin.<br></blockquote><div><br></div><div>This can&#39;t be emphasized enough to people starting out. Haskell doesn&#39;t have operators in the same sense as other languages. All those punctuation symbols are ordinary functions and can be user- or library-defined to mean anything.</div>

<div><br></div><div>There are also primitive functions and functions defined via the FFI but those aren&#39;t baked into the language either.</div><div><br></div><div>&lt;tangential rant&gt; There is a reason why the prelude is called as such and not &quot;the standard library&quot;, which is a term I don&#39;t think you can find in the language specs. That said, people looking for &quot;the standard library&quot; are usually directed to the Haskell Platform, again not because there _is_ such a thing, but because their needs are best met there.</div>

<div><br></div><div> </div>-- Kim-Ee<br>
<br><br><div class="gmail_quote">On Thu, Nov 1, 2012 at 5:03 AM, Emmanuel Touzery <span dir="ltr">&lt;<a href="mailto:etouzery@gmail.com" target="_blank">etouzery@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Thank you that is very interesting... this is really impressive with haskell that it&#39;s so &quot;easy&quot; to add such operators, that they don&#39;t need to be builtin.<br><br>Thanks for your time, it was not wasted!<div class="HOEnZb">

<div class="h5"><br>
<br><div class="gmail_quote">On Wed, Oct 31, 2012 at 6:26 PM, Daniel Trstenjak <span dir="ltr">&lt;<a href="mailto:daniel.trstenjak@gmail.com" target="_blank">daniel.trstenjak@gmail.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><br>
On Wed, Oct 31, 2012 at 06:14:52PM +0100, Daniel Trstenjak wrote:<br>
&gt; (&lt;&amp;&amp;&gt;) :: Monad m =&gt; m Bool -&gt; m Bool -&gt; m Bool<br>
&gt; (&lt;&amp;&amp;&gt;) m1 m2 = do<br>
&gt;    r1 &lt;- m1<br>
&gt;    if r1 then m2 else return False<br>
&gt;<br>
&gt;<br>
&gt; (&lt;||&gt;) :: Monad m =&gt; m Bool -&gt; m Bool -&gt; m Bool<br>
&gt; (&lt;||&gt;) m1 m2 = do<br>
&gt;    r1 &lt;- m1<br>
&gt;    if r1 then return True else m2<br>
<br>
</div>That the operators behave like the boolean ones we should have the same fixity declarations:<br>
<br>
infixr 3 (&lt;&amp;&amp;&gt;)<br>
infixr 2 (&lt;||&gt;)<br>
<div><div><br>
<br>
Greetings,<br>
Daniel<br>
<br>
_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
</div></div></blockquote></div><br>
</div></div><br>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br>