From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 530BD7EEEF for ; Tue, 23 Jun 2015 15:36:51 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of ivg@ieee.org) identity=pra; client-ip=209.85.215.54; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="ivg@ieee.org"; x-sender="ivg@ieee.org"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of ivg@ieee.org designates 209.85.215.54 as permitted sender) identity=mailfrom; client-ip=209.85.215.54; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="ivg@ieee.org"; x-sender="ivg@ieee.org"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-la0-f54.google.com) identity=helo; client-ip=209.85.215.54; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="ivg@ieee.org"; x-sender="postmaster@mail-la0-f54.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DwAADlX4lVmzbXVdFbg2RfBoMYqCAGkQmDA4V8AoFCB0wBAQEBAQESAQEBAQEGCwsJIS6EIgEBAQMBEhFWBQsLCw0qAgIiEgEFARwGEwgBGYgFCA2pPz4xiz+WRAEBAQEBBQEBAQEBHQqGEoUuhC0HAQFQB4JogUMFk3+LUYE6kyCCERIjgRUXhCUiMQGBAgkXgSUBAQE X-IPAS-Result: A0DwAADlX4lVmzbXVdFbg2RfBoMYqCAGkQmDA4V8AoFCB0wBAQEBAQESAQEBAQEGCwsJIS6EIgEBAQMBEhFWBQsLCw0qAgIiEgEFARwGEwgBGYgFCA2pPz4xiz+WRAEBAQEBBQEBAQEBHQqGEoUuhC0HAQFQB4JogUMFk3+LUYE6kyCCERIjgRUXhCUiMQGBAgkXgSUBAQE X-IronPort-AV: E=Sophos;i="5.13,665,1427752800"; d="scan'208";a="166869247" Received: from mail-la0-f54.google.com ([209.85.215.54]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 23 Jun 2015 15:36:50 +0200 Received: by lagx9 with SMTP id x9so6742294lag.1 for ; Tue, 23 Jun 2015 06:36:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=MHeiWEezSwdpdbI0Lb1unLAsa2XLwLm8XPF1oBNMcxE=; b=fw4r/nBkmOkdL/hzB5/mJnlJ5rPTej+boiKLidtD4lK5mAfvtWSV23Ii5j6lGOg0xs F7hPhjmq/fRozGjYOMtE8FVZe72EDkcgqzCrbA3tm+GCk0hl+6YiSLzdopg8sWvjvKcG GBDvfogX4QhCSmGwrDYSq5vXM3Wr8r2DjGIxB7MmYj5IA+AniZuO53Z0Vk1nOZAfTNgo b2YEj0Japd6jGCibRpqfxpJ+afUhxLDbjGS2ZWfwWA+ESSf4YXtpHEnG0y/USCCne9Ci aY5w7OrhxmO/WwjdU2/kzEQRGy4FN1kB645+Narhcwv7kRBa0xBVgs+vL9iTOsGQUbjb Q5/g== X-Gm-Message-State: ALoCoQmB7y4/tOfwIp/s+cvXYXel1Xyx9/sblhk9RpcjuoFiVMWcxUtpwtf4UN6ky/yDk2DYHb+I MIME-Version: 1.0 X-Received: by 10.112.140.137 with SMTP id rg9mr35319737lbb.101.1435066609764; Tue, 23 Jun 2015 06:36:49 -0700 (PDT) Received: by 10.114.26.99 with HTTP; Tue, 23 Jun 2015 06:36:49 -0700 (PDT) In-Reply-To: References: Date: Tue, 23 Jun 2015 09:36:49 -0400 Message-ID: From: Ivan Gotovchits To: Alan Schmitt Cc: Philippe Wang , OCaml Mailing List Content-Type: multipart/alternative; boundary=001a11c2b3468122f705192f7bc7 Subject: Re: [Caml-list] use of ";;" when teaching Ocaml --001a11c2b3468122f705192f7bc7 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable forget the link... [1]: http://www.typerex.org/ocaml-top.html On Tue, Jun 23, 2015 at 9:35 AM, Ivan Gotovchits wrote: > > > On Tue, Jun 23, 2015 at 9:27 AM, Alan Schmitt < > alan.schmitt@polytechnique.org> wrote: > >> Hello, >> >> Thanks to everyone for your answers, this has given me much food for >> thought. >> >> On 2015-06-23 01:41, Philippe Wang writes: >> >> > In my opinion, it's a lot more relevant to use a very limited and very >> > simple subset of OCaml when teaching to beginners. And this subset >> > does not involve expressions at top-level because it's not worth the >> > trouble. >> >> I like this approach because it amounts to saying "one always starts >> a phrase with 'let' or 'type'" (and later in the year there can be >> 'open', 'module', 'include'). I sure can live without top-level >> expressions. >> >> On the other hand, I also like the idea of terminating phrases, simply >> because explaining when it terminates is not trivial otherwise, as >> a 'let' may not be the beginning of a phrase. >> >> > Also, using the interactive top-level loop is, in my opinion, not good >> > for beginners. It should only be presented to those who already >> > understand very well the "core" of OCaml. The most frequent issue with >> > the top-level loop is that it gets in the way of the notion of >> > compiling a program, and it might give the false impression that OCaml >> > can be interpreted. >> >> I am curious about this. My goal is to teach the language, and I find >> that a REPL backed with a file works great to do this (using tuareg or >> ocaml-top). What do you use to make sure students have a fast >> compile/debug cycle? >> > > You should take a look into ocaml-top [1]. It is a toplevel that doesn't > require `;;` at all. > > > > > >> >> Thanks again, >> >> Alan >> >> -- >> OpenPGP Key ID : 040D0A3B4ED2E5C7 >> Weekly CO=E2=82=82 average (2015-05-30, Mauna Loa Observatory): 403.41 p= pm >> > > --001a11c2b3468122f705192f7bc7 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
forget the link...


On Tue, Jun 23, 2015 at 9:35 AM, Ivan Gotovchits <ivg@ieee.org> = wrote:


On Tue,= Jun 23, 2015 at 9:27 AM, Alan Schmitt <alan.schmitt@polytech= nique.org> wrote:
Hello,
Thanks to everyone for your answers, this has given me much food for
thought.

On 2015-06-23 01:41, Philippe Wang <mail@philippewang.info> writes:

> In my opinion, it's a lot more relevant to use a very limited and = very
> simple subset of OCaml when teaching to beginners. And this subset
> does not involve expressions at top-level because it's not worth t= he
> trouble.

I like this approach because it amounts to saying "one always s= tarts
a phrase with 'let' or 'type'" (and later in the year = there can be
'open', 'module', 'include'). I sure can live witho= ut top-level
expressions.

On the other hand, I also like the idea of terminating phrases, simply
because explaining when it terminates is not trivial otherwise, as
a 'let' may not be the beginning of a phrase.

> Also, using the interactive top-level loop is, in my opinion, not good=
> for beginners. It should only be presented to those who already
> understand very well the "core" of OCaml. The most frequent = issue with
> the top-level loop is that it gets in the way of the notion of
> compiling a program, and it might give the false impression that OCaml=
> can be interpreted.

I am curious about this. My goal is to teach the language, and I fin= d
that a REPL backed with a file works great to do this (using tuareg or
ocaml-top). What do you use to make sure students have a fast
compile/debug cycle?

You sh= ould take a look into ocaml-top [1]. It is a toplevel that doesn't requ= ire `;;` at all.


<= br>
=C2=A0

Thanks again,

Alan

--
OpenPGP Key ID : 040D0A3B4ED2E5C7
Weekly CO=E2=82=82 average (2015-05-30, Mauna Loa Observatory): 403.41 ppm<= br>


--001a11c2b3468122f705192f7bc7--