Re: Question about in_channel???

"Toby Kelsey [email protected] [ocaml_beginners]" <[email protected]> Fri, 12 May 2017 17:11:11 -0400
Newsgroups gmane.comp.lang.ocaml.beginners
Message-ID <[email protected]>
--------------B64D539758E8B9E1AA081C9D
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

I haven't used sml/nj but have you looked at these pages?

<http://www.soc.napier.ac.uk/course-notes/sml/execable.htm>

<http://stackoverflow.com/questions/5053149/sml-nj-how-to-compile-standalone-executable#5073129>

Toby

On 12/05/17 14:28, Douglas Lewit [email protected] [ocaml_beginners] wrote:
> Hi Toby,
>
> Thanks for the reply.  Regarding SML, I'm using the SML of New Jersey 
> implementation.  So far all I can gather is that the compilation 
> command requires something like CM.make( ) but beyond that I'm really 
> lost.  I just haven't been able to find any information about this.  
> Most of the SML examples that I have found so far are limited to using 
> the REPL.
>
> Best,
>
> Douglas.
>
>
> On Fri, May 12, 2017 at 9:28 AM, Toby Kelsey [email protected] 
> <mailto:[email protected]> [ocaml_beginners] 
> <[email protected] 
> <mailto:[email protected]>> wrote:
>
>     On 11/05/17 10:40, Douglas Lewit [email protected]
>     <mailto:[email protected]> [ocaml_beginners] wrote:
>     > However, at no point in the
>     > program am I able to place a "close_in" command to close the
>     in_channel
>     > value. Isn't that a problem?
>
>     You need to close the file after you have the result, but before
>     you return from the function which opens the file. You
>     can use the semicolon syntax to do this:
>
>     let myfunc filename =
>     let chan = open_in filename in
>     ...
>     let result = count_lines_helper chan ... in
>     (close_in chan; result)
>
>     A good practice is to also catch any exception and close the file
>     before reraising the exception. This page has an
>     example of this:
>
>     <https://ocaml.org/learn/tutorials/file_manipulation.html#Example
>     <https://ocaml.org/learn/tutorials/file_manipulation.html#Example>>
>
>     > Oh yes.... one last question. If someone says, "My function's
>     type is int"
>     > and someone else says, "My function's return type is int", do
>     those two
>     > statements mean exactly the same thing? So if a function returns
>     an int
>     > for example, then you could say the function type is int or you
>     could say
>     > the function's return type is int. Is that correct?
>
>     Some programmers may conflate function type and return type when
>     speaking casually, but in
>     functional programming the type of the function 'a -> b' is
>     distinct from the type of the result 'b'.
>
>     > the function's return type is int. Is that correct? I know
>     functional
>     > programmers seem to avoid ( as much as possible ) using the word
>     "return".
>     > Honestly, I'm not sure why the word "return" is such a dirty
>     word among
>     > functional programmers. Oh well.... I guess it's just part of
>     the lingo of
>     > the tradition, right?
>
>     Functional pogrammers think of functions as being like
>     mathematical expressions. It would sound odd to say 1+2 has a
>     "return type" of int.
>
>     > many ways, but.... how on earth are we supposed to compile a
>     .sml file?
>
>     Most (all?) implementations of SML have a compiler. Which one are
>     you using?
>
>     Toby
>
>
> 


--------------B64D539758E8B9E1AA081C9D
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit




<!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>
  
  
    <p>I haven't used sml/nj but have you looked at these pages?</p>
    <p><a class="moz-txt-link-rfc2396E" href="http://www.soc.napier.ac.uk/course-notes/sml/execable.htm">&lt;http://www.soc.napier.ac.uk/course-notes/sml/execable.htm&gt;</a></p>
    <p><a class="moz-txt-link-rfc2396E" href="http://stackoverflow.com/questions/5053149/sml-nj-how-to-compile-standalone-executable#5073129">&lt;http://stackoverflow.com/questions/5053149/sml-nj-how-to-compile-standalone-executable#5073129&gt;</a><br>
    </p>
    Toby<br>
    <br>
    <div class="moz-cite-prefix">On 12/05/17 14:28, Douglas Lewit
      <a class="moz-txt-link-abbreviated" href="mailto:[email protected]">[email protected]</a> [ocaml_beginners] wrote:<br>
    </div>
    <blockquote cite="mid:CAM0XMJQ=ASOYdnVeZzTdLkZsnBhp5GZCo-Pxr7pgHAer+0bXtQ@mail.gmail.com" type="cite"> <span> </span>
      
          <div id="ygrp-text">
            <div dir="ltr"><font size="4">Hi Toby,</font>
              <div><font size="4"><br>
                </font></div>
              <div><font size="4">Thanks for the reply.  Regarding SML,
                  I'm using the SML of New Jersey implementation.  So
                  far all I can gather is that the compilation command
                  requires something like CM.make( ) but beyond that I'm
                  really lost.  I just haven't been able to find any
                  information about this.  Most of the SML examples that
                  I have found so far are limited to using the REPL.</font></div>
              <div><font size="4"><br>
                </font></div>
              <div><font size="4">Best,</font></div>
              <div><font size="4"><br>
                </font></div>
              <div><font size="4">Douglas.</font></div>
              <div><font size="4"><br>
                </font></div>
            </div>
            <div class="gmail_extra"><br>
              <div class="gmail_quote">On Fri, May 12, 2017 at 9:28 AM,
                Toby Kelsey <a moz="true" href="mailto:[email protected]">[email protected]</a>
                [ocaml_beginners] <span dir="ltr">&lt;<a moz="true" href="mailto:[email protected]" target="_blank">[email protected]</a>&gt;</span>
                wrote:<br>
                <blockquote class="gmail_quote" style="border-left:1px
                  #ccc solid;">
                  <div style="background-color:#fff;">
                    <span> </span>
                    <div id="m_7679632779910439318ygrp-mlmsg">
                      <div id="m_7679632779910439318ygrp-msg">
                        <div id="m_7679632779910439318ygrp-text">
                          <p><span class>On 11/05/17 10:40, Douglas
                              Lewit <a moz="true" href="mailto:[email protected]" target="_blank">[email protected]</a>
                              [ocaml_beginners] wrote:<br>
                              &gt; However, at no point in the<br>
                              &gt; program am I able to place a
                              "close_in" command to close the in_channel<br>
                              &gt; value. Isn't that a problem?<br>
                              <br>
                            </span>
                            You need to close the file after you have
                            the result, but before you return from the
                            function which opens the file. You <br>
                            can use the semicolon syntax to do this:<br>
                            <br>
                            let myfunc filename =<br>
                            let chan = open_in filename in<br>
                            ...<br>
                            let result = count_lines_helper chan ... in<br>
                            (close_in chan; result)<br>
                            <br>
                            A good practice is to also catch any
                            exception and close the file before
                            reraising the exception. This page has an <br>
                            example of this:<br>
                            <br>
                            &lt;<a moz="true" href="https://ocaml.org/learn/tutorials/file_manipulation.html#Example" target="_blank">https://ocaml.org/learn/<wbr>tutorials/file_manipulation.<wbr>html#Example</a>&gt;<span class><br>
                              <br>
                              &gt; Oh yes.... one last question. If
                              someone says, "My function's type is int"<br>
                              &gt; and someone else says, "My function's
                              return type is int", do those two<br>
                              &gt; statements mean exactly the same
                              thing? So if a function returns an int<br>
                              &gt; for example, then you could say the
                              function type is int or you could say<br>
                              &gt; the function's return type is int. Is
                              that correct?<br>
                              <br>
                            </span>
                            Some programmers may conflate function type
                            and return type when speaking casually, but
                            in<br>
                            functional programming the type of the
                            function 'a -&gt; b' is distinct from the
                            type of the result 'b'.<span class><br>
                              <br>
                              &gt; the function's return type is int. Is
                              that correct? I know functional<br>
                              &gt; programmers seem to avoid ( as much
                              as possible ) using the word "return".<br>
                              &gt; Honestly, I'm not sure why the word
                              "return" is such a dirty word among<br>
                              &gt; functional programmers. Oh well.... I
                              guess it's just part of the lingo of<br>
                              &gt; the tradition, right?<br>
                              <br>
                            </span>
                            Functional pogrammers think of functions as
                            being like mathematical expressions. It
                            would sound odd to say 1&#43;2 has a <br>
                            "return type" of int.<span class><br>
                              <br>
                              &gt; many ways, but.... how on earth are
                              we supposed to compile a .sml file?<br>
                              <br>
                            </span>
                            Most (all?) implementations of SML have a
                            compiler. Which one are you using?<br>
                            <br>
                            Toby<br>
                            <br>
                          </p>
                        </div>
                      </div>
                    </div>
                  </div>
                </blockquote>
              </div>
              <br>
            </div>
          </div>
          
      
      <!-- end group email -->
    </blockquote>
    <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: Toby Kelsey &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/14810;_ylc=X3oDMTJxaGk3b3EwBF9TAzk3MzU5NzE0BGdycElkAzQ5OTkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzE0ODEwBHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTQ5NDYyMzQ3NQ--?act=reply&messageNum=14810">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%20Question%20about%20in_channel%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%20Question%20about%20in_channel%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=X3oDMTJlODNwaGxmBF9TAzk3MzU5NzE0BGdycElkAzQ5OTkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTQ5NDYyMzQ3NQ--" 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/14806;_ylc=X3oDMTM2M2c0MWEyBF9TAzk3MzU5NzE0BGdycElkAzQ5OTkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzE0ODEwBHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTQ5NDYyMzQ3NQR0cGNJZAMxNDgwNg--" style="text-decoration: none; color: #2D50FD;">Messages in this topic</a>
                (4)
                      </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=X3oDMTJlNWVxaW1zBF9TAzk3MzU5NzE0BGdycElkAzQ5OTkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTQ5NDYyMzQ3NQ--" style="text-decoration: none;">Visit Your Group</a></span>

     <ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
            <li style="border-right: 1px solid #000; font-weight: 700; display: inline; padding: 0 5px; margin-left: 0;">
      <span class="cat"><a href="https://groups.yahoo.com/neo/groups/ocaml_beginners/members/all;_ylc=X3oDMTJmM2tqY3RoBF9TAzk3MzU5NzE0BGdycElkAzQ5OTkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzE0OTQ2MjM0NzU-" style="text-decoration: none;">New Members</a></span>
      <span class="ct" style="color: #ff7900;">2</span>
    </li>
                                              </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=X3oDMTJkNjdocmNzBF9TAzk3NDc2NTkwBGdycElkAzQ5OTkxOTQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxNDk0NjIzNDc1" 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=14810/stime=1494623475" 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 -->


--------------B64D539758E8B9E1AA081C9D--