From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 0F3A27EEEF for ; Mon, 22 Jun 2015 18:07:16 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of pip88nl@gmail.com) identity=pra; client-ip=74.125.82.53; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="pip88nl@gmail.com"; x-sender="pip88nl@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of pip88nl@gmail.com designates 74.125.82.53 as permitted sender) identity=mailfrom; client-ip=74.125.82.53; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="pip88nl@gmail.com"; x-sender="pip88nl@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-wg0-f53.google.com) identity=helo; client-ip=74.125.82.53; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="pip88nl@gmail.com"; x-sender="postmaster@mail-wg0-f53.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DfAQAEMohVlDVSfUpcgmaBXatkBoFQhg+PR4JiAoE6TAEBAQEBARIBAQEBBwsLCR8whCMBAQQSLgEbHQEDDAYFGAklDwUPEQEFASIuB4d3AQMSAQSoEz4xjSqCeYp4ChknDVeFBAEBAQEBBQIBGQEFDoYNhSqFBgeDF4EUBZN9i02WaDWBFReECG+CSAEBAQ X-IPAS-Result: A0DfAQAEMohVlDVSfUpcgmaBXatkBoFQhg+PR4JiAoE6TAEBAQEBARIBAQEBBwsLCR8whCMBAQQSLgEbHQEDDAYFGAklDwUPEQEFASIuB4d3AQMSAQSoEz4xjSqCeYp4ChknDVeFBAEBAQEBBQIBGQEFDoYNhSqFBgeDF4EUBZN9i02WaDWBFReECG+CSAEBAQ X-IronPort-AV: E=Sophos;i="5.13,660,1427752800"; d="asc'?scan'208";a="137362192" Received: from mail-wg0-f53.google.com ([74.125.82.53]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 22 Jun 2015 18:07:15 +0200 Received: by wgck11 with SMTP id k11so18371308wgc.0; Mon, 22 Jun 2015 09:07:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=6I+6ebR3834GLHWCbCoYMvE/mFhiCBu+6C6b2sX5/Nk=; b=lKzJYaTqqrAjqLvJZomVY1fY8OBm3CXuSiAesJ9Xkj8J3kSw+GDrMqFKm2YT+cNmW9 0x3IWm01bzjY9pQbDKA/OapXhK4TSpvyBarVSkm14GbWIdYvpaHVbYCS6BseC6Qf5zAm BzESEMC+ZAc7L9O7PWTA8cMk8HSMjSRwij6bIGGyniF2J7Jr3M9CaT+jmGnwz9OwF4m0 +r9BANh9EvZ456E5lDKnXZ0aCzwCGmRuxuH5oHuOBJdYlAA4AN04lXWISJm5XXWOjMlL oBjp0lpnQFbfUSFGRulDSP38PtU/vUOHh1bdHKiOk9DkbkiLI7QNCxLwd5eRlurF7noY HUhw== X-Received: by 10.180.11.200 with SMTP id s8mr32696914wib.17.1434989234787; Mon, 22 Jun 2015 09:07:14 -0700 (PDT) Received: from localhost (xinutec.org. [2001:41d0:2:91b4::1]) by mx.google.com with ESMTPSA id u6sm31283941wja.40.2015.06.22.09.07.13 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jun 2015 09:07:13 -0700 (PDT) Date: Mon, 22 Jun 2015 16:07:13 +0000 From: Pippijn van Steenhoven To: Damien Doligez Cc: Gerd Stolpmann , Alan Schmitt , OCaml Mailing List Message-ID: <20150622160712.GF5472@xinutec.org> References: <1434982765.31996.19.camel@e130.lan.sumadev.de> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="cpvLTH7QU4gwfq3S" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Subject: Re: [Caml-list] use of ";;" when teaching Ocaml --cpvLTH7QU4gwfq3S Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Jun 22, 2015 at 11:48:21AM -0400, Damien Doligez wrote: > Gerd has totally nailed it, and that's the reason why I always use ;; > in my code. > If we had another keyword for toplevel let (let without in) the > situation would be quite different. I have a rule (which I introduced recently, and thus don't yet follow much in my code) to use ;; to terminate all unit-returning (therefore effectful) functions. Pure functions or effectful functions with a proper return value never have the trailing-semicolon issue. An alternative solution is to always return () from unit-returning functions, but I found ;; more appealing. --cpvLTH7QU4gwfq3S Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEARECAAYFAlWIMrAACgkQJc+zqGNdDgqSyACbBzdjYi0Vfp0OSgzab66jDeWP LNIAnimUwpor4oDu2lhlyng1gDvXlJUU =Bq3r -----END PGP SIGNATURE----- --cpvLTH7QU4gwfq3S--