From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr 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 A0CCB8239C for ; Thu, 15 Feb 2018 02:17:50 +0100 (CET) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=murthy.chet@gmail.com; spf=Pass smtp.mailfrom=murthy.chet@gmail.com; spf=None smtp.helo=postmaster@mail-pg0-f49.google.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of murthy.chet@gmail.com) identity=pra; client-ip=74.125.83.49; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="murthy.chet@gmail.com"; x-sender="murthy.chet@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of murthy.chet@gmail.com designates 74.125.83.49 as permitted sender) identity=mailfrom; client-ip=74.125.83.49; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="murthy.chet@gmail.com"; x-sender="murthy.chet@gmail.com"; 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-pg0-f49.google.com) identity=helo; client-ip=74.125.83.49; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="murthy.chet@gmail.com"; x-sender="postmaster@mail-pg0-f49.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AwNM5ehRncDs8DFoCrZl/uWCJtdpsv+yvbD5Q0YIu?= =?us-ascii?q?jvd0So/mwa69ZBCN2/xhgRfzUJnB7Loc0qyK6/umATRIyK3CmUhKSIZLWR4BhJ?= =?us-ascii?q?detC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+?= =?us-ascii?q?KPjrFY7OlcS30P2594HObwlSizexfb1/IA+qoQnNq8IbnZZsJqEtxxXTv3BGYf?= =?us-ascii?q?5WxWRmJVKSmxbz+MK994N9/ipTpvws6ddOXb31cKokQ7NYCi8mM30u683wqRbD?= =?us-ascii?q?VwqP6WACXWgQjxFFHhLK7BD+Xpf2ryv6qu9w0zSUMMHqUbw5Xymp4qF2QxHqlS?= =?us-ascii?q?gHLSY0/2PZisJwgqxVow+vqQJjzIPPeo6ZKOBzc7nBcd8GR2dMWNtaWSxbAoO7?= =?us-ascii?q?aosCF/QMPeZGoInhulAAqga+BROwBOPvyj5Dm3j73agn0+Q7DQHG3AwhE8gSv3?= =?us-ascii?q?TUstr1KLwfUe+wzKbSzDXDa+la1iv66IjNax0sp+yHU7FoccfJy0QiGBnJgkiO?= =?us-ascii?q?pYHlJT+Y1eoAv3KU4udkU++klnQppBtroje1w8chkonJiZwRylDD7Sh5xZw6Jd?= =?us-ascii?q?y8SEJied6kH4dcuziUN4Z5Rs4uWW5ouCE9yr0JvZ60YjIGx4ggxx7ac/CHco6I?= =?us-ascii?q?7Qz/VOuJIzp1i2hpdK+hixuy60StyePxWtO73VtOtiZFl8PDtnEJ1xzd8MiHTf?= =?us-ascii?q?5981+k2TaSzQDT9uFEIEAumaXHK54u3KIwm4EcsUTGBCD2mUH2gLWKeUUj/+ik?= =?us-ascii?q?8/7nban+pp+AK490jRnzPbg0lcy6BeQ0KwwOX2mA+eSgz7Dj5k34QLBSjvIsiK?= =?us-ascii?q?XZsZbaJd4apqGjGQNV3JwjuF6DCGKt2dEc2H0GN04NLBmOioysP1DVPNj5C+2+?= =?us-ascii?q?ihKiimE46erBO+jKApjRZl3eiqvhbP4p7lNG1Aoii9tf6o58BbQIIfa1UUj04o?= =?us-ascii?q?+LRiQlOhC5lr60QO520ZkTDDrWU/2pdZjKuFrN3doBZuyFZYsbojH4cqF36Pvn?= =?us-ascii?q?jHt/klgYL/DwgcknLUugF/EjGH23JGL2i45YQ2gPtws6CuftjQ/aCGMBVzOJR6?= =?us-ascii?q?s5owoDJsemAIPEHN3/hbWA2GKjEcUTaDwXTF+LFnjsesOPXPJeMC8=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BKCwA634RahzFTfUpcHAEBAQQBAQoBA?= =?us-ascii?q?YUoKAqDW4E5lm+CAnwbgmqGDYdwhVuCGAqFOwKCdgcZBwQxFwECAQEBAQEBAQE?= =?us-ascii?q?BEgEBAQgNCQgoL4I4IoJJAQEBAwEjHQEbHgMBCwYFBAcNKgICIgERAQUBHAYTi?= =?us-ascii?q?hwBAw0IondAjBeCBQUBHIMMBYNtChknDVlZghMBAQgCAR0CBhKEcIIVgz+CeDa?= =?us-ascii?q?IOYJlAQSTZJBLCYwoiV13k06YBRQFIIEXIAGCBzMaI1IyghSCRh+CMyA3jiQBA?= =?us-ascii?q?QE?= X-IPAS-Result: =?us-ascii?q?A0BKCwA634RahzFTfUpcHAEBAQQBAQoBAYUoKAqDW4E5lm+?= =?us-ascii?q?CAnwbgmqGDYdwhVuCGAqFOwKCdgcZBwQxFwECAQEBAQEBAQEBEgEBAQgNCQgoL?= =?us-ascii?q?4I4IoJJAQEBAwEjHQEbHgMBCwYFBAcNKgICIgERAQUBHAYTihwBAw0IondAjBe?= =?us-ascii?q?CBQUBHIMMBYNtChknDVlZghMBAQgCAR0CBhKEcIIVgz+CeDaIOYJlAQSTZJBLC?= =?us-ascii?q?YwoiV13k06YBRQFIIEXIAGCBzMaI1IyghSCRh+CMyA3jiQBAQE?= X-IronPort-AV: E=Sophos;i="5.46,515,1511823600"; d="scan'208,217";a="313642676" Received: from mail-pg0-f49.google.com ([74.125.83.49]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 15 Feb 2018 02:17:49 +0100 Received: by mail-pg0-f49.google.com with SMTP id m19so3011643pgn.1 for ; Wed, 14 Feb 2018 17:17:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=IdmYxwfxxo953B+DH0HvsuN+r0R8Dk1rMzRfuQqwmoQ=; b=GqHU861+kuioKF8vy7K1GVHtMOszsT0SGiahMoWSyltampKFjXTAittS9VvCisPoOJ k/ZGDLdrGdAGE2h2aMB3asArREwZJIn6vx304HbyKjhRAldNif+Pbjlph9rrwM0jzxvj SU+UOKC3tC1ib+3UyYEhARlLVc52Rwaty2cjfzD2xY7rgOmhfEBkp15vkS6BkdAH+z4k Zsmc/A07GprGirQKiXTT+v+UpjSCpb5VEsYDhYym/KCzxO4YsDRiPkURGV4zcIE5P2nm Qq2VhDQj+8+J5IhumrOssYFZU/qI18c2h6qZwZCHbSOryiPhHutHXU4TzZzQZ1aCsZHY 4nUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=IdmYxwfxxo953B+DH0HvsuN+r0R8Dk1rMzRfuQqwmoQ=; b=cM/bNn+CA9wzBp1nA/ykRNUE+NNeV0gOkumxcuTcyGsKWmMIl0B9JeLOqBN0QtkNhL 7p38bwXanHayOkekhIJWtApVbktMU+Z0T/ClQog5QpQW1iVr7xpZLL5fHIat0bg11/L6 NxBxG3g5A4s1DWS49CTay6jp7QA3aOwmPeyIHaYt5BCe4+6bwY9schGBI7+2ovm4dv+p gbjqhyg5NlWxiWA9AqOIB439cfw5h0uWaPzH1jme+i5vjDu+mXApCUmWAHmKioZ9kqmb 0wl784MPUghJ376X8J3NVjIQZoRX5WxaorzF4fd4ShGB923MoM46rmvkzlsFuGo2lx6M AfHw== X-Gm-Message-State: APf1xPBocvkZoDN5PhYJXt+XrP/PV9ZE1hF6FfxHM+rCDIVI1xJCnw+2 Xaiwm3MV7/vYvp6iJCia9dhSwUTSwy8gOCymzV8= X-Google-Smtp-Source: AH8x2248woEXt4rqV4vHC2o8OUPYmoA86J398xbRJCHUIUYgaA4aO2w3YHI7Q++UvjehKNRyaP+u0uY2UNXVqZ5txNw= X-Received: by 10.98.80.89 with SMTP id e86mr928121pfb.46.1518657467357; Wed, 14 Feb 2018 17:17:47 -0800 (PST) MIME-Version: 1.0 Received: by 10.100.133.136 with HTTP; Wed, 14 Feb 2018 17:17:46 -0800 (PST) In-Reply-To: <20180214234023.36qmqoukx47zk442@matica.foolinux.mooo.com> References: <21BC6EDE-DB27-460B-A4D5-BBD583C9E899@TimLeonard.us> <20180214195046.Horde.mSIwdxq5Yo9xUKgfzIss4Ey@webmail.in-berlin.de> <20180214234023.36qmqoukx47zk442@matica.foolinux.mooo.com> From: Chet Murthy Date: Wed, 14 Feb 2018 17:17:46 -0800 Message-ID: To: caml-list Content-Type: multipart/alternative; boundary="001a11460604e09f38056535fec0" Subject: Re: [Caml-list] a question about syntax --001a11460604e09f38056535fec0 Content-Type: text/plain; charset="UTF-8" i don't remember the answer to your question, but I suspect it is this: # 1,2 ;; - : int * int = (1, 2) That is, again, syntactic succinctness. tuples need not always be parenthesized. But I'm really just making this up -- I certainly don't remember well enough to be definitive on this. It does seem to follow the general pattern, though: with generativity of record-field-names as another example. On Wed, Feb 14, 2018 at 3:40 PM, Ian Zimmerman wrote: > On 2018-02-14 15:02, Chet Murthy wrote: > > > I remember back in the day Pierre Weis explaining to me that this > > syntactic trade-off was made in order to allow that "let" and "match" > > didn't have ending key-words (e.g. "end"). > > I would understand and accept that choice. But the larger question is, > why was the semicolon overloaded like this? In SML the semicolon serves > just one purpose: separating consecutive imperative statements (well it > can also separate declarations but that is optional). Why has CAML > chosen to use the semicolon in list and record patterns and values, > instead of the comma like SML? > > > Unlike in SML/NJ. > > SML has multiple implementations (as implied in the S). > --001a11460604e09f38056535fec0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
i don't remember the answer to your question, but I su= spect it is this:

# 1,2 ;;
- : int * int = =3D (1, 2)

That is, ag= ain, syntactic succinctness.=C2=A0 tuples need not always be parenthesized.= =C2=A0 But I'm really just making this up -- I certainly don't reme= mber well enough to be definitive on this.
=
It does seem to follow the general pat= tern, though: with generativity of record-field-names as another example.

On Wed, Feb 1= 4, 2018 at 3:40 PM, Ian Zimmerman <itz@very.loosely.org> = wrote:
On 2018-02-14 15:= 02, Chet Murthy wrote:

> I remember back in the day Pierre Weis explaining to me that this
> syntactic trade-off was made in order to allow that "let" an= d "match"
> didn't have ending key-words (e.g. "end").

I would understand and accept that choice.=C2=A0 But the larger ques= tion is,
why was the semicolon overloaded like this?=C2=A0 In SML the semicolon serv= es
just one purpose: separating consecutive imperative statements (well it
can also separate declarations but that is optional).=C2=A0 Why has CAML
chosen to use the semicolon in list and record patterns and values,
instead of the comma like SML?

> Unlike in SML/NJ.

SML has multiple implementations (as implied in the S).
--001a11460604e09f38056535fec0--