Re: x versus _ as x ????

"Walter Cazzola [email protected] [ocaml_beginners]" <[email protected]> Sun, 27 Nov 2016 21:21:02 +0100 (CET)
Newsgroups gmane.comp.lang.ocaml.beginners
Message-ID <[email protected]>
--5-PnFG7AowMBah5wbgn1mGs279hCoL-sJNgZemk
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hi,
I don't know what riffle does in mathematica but both these functions
doesn't compile because a rec is missing from the add_two_lists
definition.

As per the "as" this just label the thing matched so x is associated to
the first list whereas y is associated to the couple [], _ (where _ is a
list) and this makes some troubles to the type systems that find a list
of list of couples (in the second entry of the match) instead of a list
of list as in the first entry of the match. I think your error is with
the associativity of , and "as": , is evaluated before "as"

I hope this helps

Walter

On Sun, 27 Nov 2016, Douglas Lewit [email protected] [ocaml_beginners] wrote:

> Hi everyone,
>
> I created my own little riffle function.  It's similar ( but not exactly
> the same as ) Wolfram Mathematica's Riffle function.  Mathematica's Riffle
> output is limited by the length of the smaller list.  My riffle output's
> length is determined by the length of the larger list.  A small difference
> really.  Anyhow, here is my function:
>
> let riffle list1 list2 = let add_two_lists l1 l2 l3 =
>                                    match l1, l2 with
>                                    |x, [ ] -> l3 @ x
>                                    |[ ], y -> l3 @ y
>                                    |h1 :: t1, h2 :: t2 -> h1 :: h2 ::
> add_two_lists t1 t2 l3 in
>                                    add_two_lists list1 list2 [ ] ;;
>
> It works great!  It works exactly as I want it to, BUT HERE'S THE PROBLEM.
> The following function DOES NOT EVEN COMPILE!!!!  Why????
>
> *let riffle list1 list2 = let add_two_lists l1 l2 l3 = *
> *                                    match l1, l2 with *
> *                                    |_ as x, [ ] -> l3 @ x*
> *                                    |[ ], _ as y -> l3 @ y*
> *                                    |h1 :: t1, h2 :: t2 -> h1 :: h2 ::
> add_two_lists t1 t2 l3 in *
> *                                    add_two_lists list1 list2 [ ] ;;*
>
> Perhaps I do not fully understand how to use the "as" keyword, but I
> thought that the two functions should compile and produce the exact same
> output.  What's the difference between the two forms?  I appreciate the
> feedback!
>
> Best,
>
> Douglas Lewit.
>
> P.S.  Can someone provide a simple example of how to initialize and use a
> Map data structure?
>

-- 

--5-PnFG7AowMBah5wbgn1mGs279hCoL-sJNgZemk
Content-Type: text/html; charset=US-ASCII
Content-Transfer-Encoding: 7bit




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>






 
<body style="background-color: #fff;">
<span style="display:none">&nbsp;</span>

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="position:relative;">
  <div id="ygrp-msg" style="z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

    <div id="ygrp-text" >
      
      
      <p>Hi,<br>
I don&#39;t know what riffle does in mathematica but both these functions<br>
doesn&#39;t compile because a rec is missing from the add_two_lists<br>
definition.<br>
<br>
As per the &quot;as&quot; this just label the thing matched so x is associated to<br>
the first list whereas y is associated to the couple [], _ (where _ is a<br>
list) and this makes some troubles to the type systems that find a list<br>
of list of couples (in the second entry of the match) instead of a list<br>
of list as in the first entry of the match. I think your error is with<br>
the associativity of , and &quot;as&quot;: , is evaluated before &quot;as&quot;<br>
<br>
I hope this helps<br>
<br>
Walter<br>
<br>
On Sun, 27 Nov 2016, Douglas Lewit [email protected] [ocaml_beginners] wrote:<br>
<br>
&gt; Hi everyone,<br>
&gt;<br>
&gt; I created my own little riffle function.  It&#39;s similar ( but not exactly<br>
&gt; the same as ) Wolfram Mathematica&#39;s Riffle function.  Mathematica&#39;s Riffle<br>
&gt; output is limited by the length of the smaller list.  My riffle output&#39;s<br>
&gt; length is determined by the length of the larger list.  A small difference<br>
&gt; really.  Anyhow, here is my function:<br>
&gt;<br>
&gt; let riffle list1 list2 = let add_two_lists l1 l2 l3 =<br>
&gt;                                    match l1, l2 with<br>
&gt;                                    |x, [ ] -&gt; l3 @ x<br>
&gt;                                    |[ ], y -&gt; l3 @ y<br>
&gt;                                    |h1 :: t1, h2 :: t2 -&gt; h1 :: h2 ::<br>
&gt; add_two_lists t1 t2 l3 in<br>
&gt;                                    add_two_lists list1 list2 [ ] ;;<br>
&gt;<br>
&gt; It works great!  It works exactly as I want it to, BUT HERE&#39;S THE PROBLEM.<br>
&gt; The following function DOES NOT EVEN COMPILE!!!!  Why????<br>
&gt;<br>
&gt; *let riffle list1 list2 = let add_two_lists l1 l2 l3 = *<br>
&gt; *                                    match l1, l2 with *<br>
&gt; *                                    |_ as x, [ ] -&gt; l3 @ x*<br>
&gt; *                                    |[ ], _ as y -&gt; l3 @ y*<br>
&gt; *                                    |h1 :: t1, h2 :: t2 -&gt; h1 :: h2 ::<br>
&gt; add_two_lists t1 t2 l3 in *<br>
&gt; *                                    add_two_lists list1 list2 [ ] ;;*<br>
&gt;<br>
&gt; Perhaps I do not fully understand how to use the &quot;as&quot; keyword, but I<br>
&gt; thought that the two functions should compile and produce the exact same<br>
&gt; output.  What&#39;s the difference between the two forms?  I appreciate the<br>
&gt; feedback!<br>
&gt;<br>
&gt; Best,<br>
&gt;<br>
&gt; Douglas Lewit.<br>
&gt;<br>
&gt; P.S.  Can someone provide a simple example of how to initialize and use a<br>
&gt; Map data structure?<br>
&gt;<br>
<br>
-- <br>
</p>

    </div>
     

    <!--~-|**|PrettyHtmlStart|**|-~-->
    <div style="color: #fff; height: 0;">__._,_.___</div>

          
  
 

    
    <div style="clear:both"> </div>

    <div id="fromDMARC" style="margin-top: 10px;">
        <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
        Posted by: Walter Cazzola &lt;[email protected]&gt;        <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
     </div>
    <div style="clear:both"> </div>

    <table cellspacing=4px style="margin-top: 10px; margin-bottom: 10px; color: #2D50FD;">
      <tbody>
        <tr>
          <td style="font-size: 12px; font-family: arial; font-weight: bold; padding: 7px 5px 5px;"  >
                          <a style="text-decoration: none; color: #2D50FD" href="https://groups.yahoo.com/neo/groups/ocaml_beginners/conversations/messages/14724;_ylc=X3oDMTJxdm1wbzNjBF9TAzk3MzU5NzE0BGdycElkAzQ5OTkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzE0NzI0BHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTQ4MDI3ODA3Mg--?act=reply&messageNum=14724">Reply via web post</a>
                      </td>
          <td>&bull;</td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
            <a href="mailto:[email protected]?subject=Re%3A%20%22ocaml_beginners%22%3A%3A%5B%5D%20x%20versus%20_%20as%20x%20%3F%3F%3F%3F" style="text-decoration: none; color: #2D50FD;">
               Reply to sender            </a>
          </td>
          <td>&bull;</td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;">
            <a href="mailto:[email protected]?subject=Re%3A%20%22ocaml_beginners%22%3A%3A%5B%5D%20x%20versus%20_%20as%20x%20%3F%3F%3F%3F" style="text-decoration: none; color: #2D50FD">
              Reply to group            </a>
          </td>
          <td>&bull;</td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
            <a href="https://groups.yahoo.com/neo/groups/ocaml_beginners/conversations/newtopic;_ylc=X3oDMTJlbDJ2ajU4BF9TAzk3MzU5NzE0BGdycElkAzQ5OTkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTQ4MDI3ODA3Mg--" style="text-decoration: none; color: #2D50FD">Start a New Topic</a>
          </td>
          <td>&bull;</td>
          <td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;color: #2D50FD;" >
                            <a href="https://groups.yahoo.com/neo/groups/ocaml_beginners/conversations/topics/14722;_ylc=X3oDMTM2OGQzbTcyBF9TAzk3MzU5NzE0BGdycElkAzQ5OTkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzE0NzI0BHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTQ4MDI3ODA3MgR0cGNJZAMxNDcyMg--" style="text-decoration: none; color: #2D50FD;">Messages in this topic</a>
                (3)
                      </td>
        </tr>
      </tbody>
    </table>

        
<div id="megaphoneModule">
            <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
        <div>
	     <div class="stream" style="margin-bottom:10px;">
        <div style="background-color:white;">
            <div class="sn-img" style="display:inline;"><img name="tn_file" style="padding:0px 10px;vertical-align:top;margin-top:5px;" src="https://s.yimg.com/ru/static/images/yg/img/megaphone/1464031581_phpFA8bON" height="82" width="82"></div>
            <div class="mod-txt" style="display:inline-block;">
                <a rel="nofollow" name="sub_url" target="_blank" href="https://yho.com/1wwmgg" style="color:#0000FF;display:block;margin-left:5px;text-decoration:none;"><span style="font-size:15px;">Have you tried the highest rated email app?</span></a>
                <div style="max-width:530px;padding:2px 5px;">With 4.5 stars in iTunes, the Yahoo Mail app is the highest rated email app on the market. What are you waiting for? Now you can access all your inboxes (Gmail, Outlook, AOL and more) in one place. Never delete an email again with 1000GB of free cloud storage.</div>
            </div>
        </div>
    </div>        </div>  
     
    <hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
</div>

<!------- Start Nav Bar ------>


    <div id="ygrp-grfd" style="font-family: Verdana; font-size: 12px; padding: 15px 0;">
      
<!-- |**|begin egp html banner|**| -->

      Archives up to December 31, 2011 are also downloadable at <a href="http://www.connettivo.net/cntprojects/ocaml_beginners">http://www.connettivo.net/cntprojects/ocaml_beginners</a><BR>
The archives of the very official ocaml list (the seniors' one) can be found at <a href="http://caml.inria.fr">http://caml.inria.fr</a><BR>
Attachments are banned and you're asked to be polite, avoid flames etc.      
<!-- |**|end egp html banner|**| -->

    </div>
  

 

<!-- |**|begin egp html banner|**| -->
<div id="ygrp-vital" style="background-color: #f2f2f2; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">

    <span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; "><a href="https://groups.yahoo.com/neo/groups/ocaml_beginners/info;_ylc=X3oDMTJlczRwNm8wBF9TAzk3MzU5NzE0BGdycElkAzQ5OTkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTQ4MDI3ODA3Mg--" style="text-decoration: none;">Visit Your Group</a></span>

     <ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
                                                    </ul>
  </div>


<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
  <a href="https://groups.yahoo.com/neo;_ylc=X3oDMTJkaWJsaGlvBF9TAzk3MzU5NzE0BGdycElkAzQ5OTkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxNDgwMjc4MDcy" style="float: left;"><img src="http://l.yimg.com/ru/static/images/yg/img/email/new_logo/logo-groups-137x15.png" height="15" width="137" alt="Yahoo! Groups" style="border: 0;"/></a>
  <div style="color: #747575; float: right;"> &bull; <a href="https://info.yahoo.com/privacy/us/yahoo/groups/details.html" style="text-decoration: none;">Privacy</a> &bull; <a href="mailto:[email protected]?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> &bull; <a href="https://info.yahoo.com/legal/us/yahoo/utos/terms/" style="text-decoration: none;">Terms of Use</a> </div>
</div>
<br>

<!-- |**|end egp html banner|**| -->

  </div> <!-- ygrp-msg -->

 
  <!-- Sponsor -->
  <!-- |**|begin egp html banner|**| -->
  <div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background: #fff;">

<!-- Start Recommendations -->
<div id="ygrp-reco">
     </div>
<!-- End Recommendations -->



  </div>   <!-- |**|end egp html banner|**| -->

  <div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div>

  <img src="http://geo.yahoo.com/serv?s=97359714/grpId=4999194/grpspId=1705006764/msgId=14724/stime=1480278072" width="1" height="1"> <br>

<img src="http://y.analytics.yahoo.com/fpc.pl?ywarid=515FB27823A7407E&a=10001310322279&js=no&resp=img&cf12=CP" width="1" height="1"> 

<div style="color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->

</body>

<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
  <style type="text/css">
  <!--
  #ygrp-mkp {
  border: 1px solid #d8d8d8;
  font-family: Arial;
  margin: 10px 0;
  padding: 0 10px;
}

#ygrp-mkp hr {
  border: 1px solid #d8d8d8;
}

#ygrp-mkp #hd {
  color: #628c2a;
  font-size: 85%;
  font-weight: 700;
  line-height: 122%;
  margin: 10px 0;
}

#ygrp-mkp #ads {
  margin-bottom: 10px;
}

#ygrp-mkp .ad {
  padding: 0 0;
}

#ygrp-mkp .ad p {
  margin: 0;
}

#ygrp-mkp .ad a {
  color: #0000ff;
  text-decoration: none;
}
  #ygrp-sponsor #ygrp-lc {
  font-family: Arial;
}

#ygrp-sponsor #ygrp-lc #hd {
  margin: 10px 0px;
  font-weight: 700;
  font-size: 78%;
  line-height: 122%;
}

#ygrp-sponsor #ygrp-lc .ad {
  margin-bottom: 10px;
  padding: 0 0;
}

  #actions {
    font-family: Verdana;
    font-size: 11px;
    padding: 10px 0;
  }

  #activity {
    background-color: #e0ecee;
    float: left;
    font-family: Verdana;
    font-size: 10px;
    padding: 10px;
  }

  #activity span {
    font-weight: 700;
  }

  #activity span:first-child {
    text-transform: uppercase;
  }

  #activity span a {
    color: #5085b6;
    text-decoration: none;
  }

  #activity span span {
    color: #ff7900;
  }

  #activity span .underline {
    text-decoration: underline;
  }

  .attach {
    clear: both;
    display: table;
    font-family: Arial;
    font-size: 12px;
    padding: 10px 0;
    width: 400px;
  }

  .attach div a {
    text-decoration: none;
  }

  .attach img {
    border: none;
    padding-right: 5px;
  }

  .attach label {
    display: block;
    margin-bottom: 5px;
  }

  .attach label a {
    text-decoration: none;
  }
  
  blockquote {
    margin: 0 0 0 4px;
  }

  .bold {
    font-family: Arial;
    font-size: 13px;
    font-weight: 700;
  }

  .bold a {
    text-decoration: none;
  }

  dd.last p a {
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span {
    margin-right: 10px;
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span.yshortcuts {
    margin-right: 0;
  }

  div.attach-table div div a {
    text-decoration: none;
  }

  div.attach-table {
    width: 400px;
  }

  div.file-title a, div.file-title a:active, div.file-title a:hover, div.file-title a:visited {
    text-decoration: none;
  }

  div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div.photo-title a:visited {
    text-decoration: none;
  }

  div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
    font-family: Verdana;
    font-size: 10px;
    font-weight: normal;
  }

  .green {
    color: #628c2a;
  }

  .MsoNormal {
    margin: 0 0 0 0;
  }

  o {
    font-size: 0;
  }

  #photos div {
    float: left;
    width: 72px;
  }

  #photos div div {
    border: 1px solid #666666;
    height: 62px;
    overflow: hidden;
    width: 62px;
  }

  #photos div label {
    color: #666666;
    font-size: 10px;
    overflow: hidden;
    text-align: center;
    white-space: nowrap;
    width: 64px;
  }

  #reco-category {
    font-size: 77%;
  }

  #reco-desc {
    font-size: 77%;
  }

  .replbq {
    margin: 4px;
  }

  #ygrp-actbar div a:first-child {
   /* border-right: 0px solid #000;*/
    margin-right: 2px;
    padding-right: 5px;
  }

  #ygrp-mlmsg {
    font-size: 13px;
    font-family: Arial, helvetica,clean, sans-serif;
    *font-size: small;
    *font: x-small;
  }

  #ygrp-mlmsg table {
    font-size: inherit;
    font: 100%;
  }

  #ygrp-mlmsg select, input, textarea {
    font: 99% Arial, Helvetica, clean, sans-serif;
  }

  #ygrp-mlmsg pre, code {
    font:115% monospace;
    *font-size:100%;
  }

  #ygrp-mlmsg * {
    line-height: 1.22em;
  }

  #ygrp-mlmsg #logo {
    padding-bottom: 10px;
  }


  #ygrp-msg p a {
    font-family: Verdana;
  }

  #ygrp-msg p#attach-count span {
    color: #1E66AE;
    font-weight: 700;
  }

  #ygrp-reco #reco-head {
    color: #ff7900;
    font-weight: 700;
  }

  #ygrp-reco {
    margin-bottom: 20px;
    padding: 0px;
  }

  #ygrp-sponsor #ov li a {
    font-size: 130%;
    text-decoration: none;
  }

  #ygrp-sponsor #ov li {
    font-size: 77%;
    list-style-type: square;
    padding: 6px 0;
  } 

  #ygrp-sponsor #ov ul {
    margin: 0;
    padding: 0 0 0 8px;
  }

  #ygrp-text {
    font-family: Georgia;
  }

  #ygrp-text p {
    margin: 0 0 1em 0;
  }

  #ygrp-text tt {
    font-size: 120%;
  }

  #ygrp-vital ul li:last-child {
    border-right: none !important; 
  } 
  -->
  </style>
</head>

<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->


--5-PnFG7AowMBah5wbgn1mGs279hCoL-sJNgZemk--