caml-list - the Caml user's mailing list
 help / Atom feed
From: Gabriel Scherer <gabriel.scherer@gmail.com>
To: "Soegtrop, Michael" <michael.soegtrop@intel.com>
Cc: Francois Berenger <francois.berenger@inria.fr>, "caml-list@inria.fr" <caml-list@inria.fr>
Subject: Re: [Caml-list] Newbie comment on constructor syntax
Date: Fri, 6 Nov 2015 13:34:11 +0100
Message-ID: <CAPFanBF2dZdOKCdo4MZ9_Uss-kWmUMDiQVP-7+kEyG5SyusgTw@mail.gmail.com> (raw)
In-Reply-To: <0F7D3B1B3C4B894D824F5B822E3E5A172CE3E0E1@IRSMSX102.ger.corp.intel.com>

[-- Attachment #1: Type: text/plain, Size: 2235 bytes --]

The use of camlp{4,5} to change OCaml syntax has always had extremely low
adoption, with some very specific exceptions (notably the lwt-support
syntax of the Ocsigen project). I suspect that this is due to the fact that
integrating a new syntax extension to your project has historically caused
more build-system and deployment trouble than people were willing to
tolerate.

ppx extensions are not designed to allow extending the OCaml syntax, and in
particular I think they are not a good fit for what you are looking for. It
is a large part of their appeal: by being less flexible, they are simpler
and more robust.

I personally believe that currified constructor syntax would be a better
choice, and that using non-currified constructors is a historical mistake
of SML/Caml. But I am also not convinced that efforts to change it today
are worth the trouble, and prefer to concentrate on improving other parts
of the OCaml ecosystem.

Another thing that was touched by your comments is the usefulness of
user-defined patterns (pattern synonyms). I have conflicted opinions on the
question of whether adding pattern synonyms would be a good thing, but
described one aspect of a proposal that I like (but also highlights that
the feature can be a source of implementation complexity) in
  http://gallium.inria.fr/blog/pattern-synonyms-as-expressions/

On Fri, Nov 6, 2015 at 1:20 PM, Soegtrop, Michael <
michael.soegtrop@intel.com> wrote:

> Dear Francois,
>
> > let constr a b = Constr (a, b)
>
> unfortunately this won't work for matches. I will see if I get used to
> this. If not I will take this as a reason to learn p5 and/or ppx :-)
>
> Best regards,
>
> Michael
> Intel Deutschland GmbH
> Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
> Tel: +49 89 99 8853-0, www.intel.de
> Managing Directors: Christin Eisenschmid, Christian Lamprechter
> Chairperson of the Supervisory Board: Nicole Lau
> Registered Office: Munich
> Commercial Register: Amtsgericht Muenchen HRB 186928
>
>
> --
> Caml-list mailing list.  Subscription management and archives:
> https://sympa.inria.fr/sympa/arc/caml-list
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>

[-- Attachment #2: Type: text/html, Size: 3244 bytes --]

  reply index

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-06  9:33 Soegtrop, Michael
2015-11-06 10:04 ` Nicolas Ojeda Bar
2015-11-06 10:31 ` Francois Berenger
2015-11-06 12:20   ` Soegtrop, Michael
2015-11-06 12:34     ` Gabriel Scherer [this message]
2015-11-06 13:09       ` Soegtrop, Michael
2015-11-06 14:10         ` Ashish Agarwal
2015-11-06 15:19           ` Soegtrop, Michael
2015-11-06 15:22             ` Ashish Agarwal
2015-11-21 17:24       ` [Caml-list] Notation for currying Hendrik Boom
2015-11-21 17:42         ` Gabriel Scherer
2015-11-21 18:06         ` David Rajchenbach-Teller
2015-11-21 18:56           ` Gabriel Scherer
2015-11-06 12:29 ` [Caml-list] Newbie comment on constructor syntax Jonas Jensen
2015-11-06 12:46   ` Soegtrop, Michael
2015-11-06 12:55     ` Gabriel Scherer
2015-11-08 21:17 ` Florian Weimer
2015-11-08 22:51   ` Norman Hardy
2015-11-09  6:27     ` Florian Weimer
2015-11-09 13:27       ` Stefan Monnier
2015-11-09  8:10     ` Soegtrop, Michael
2015-11-09 10:00       ` Hendrik Boom
2015-11-09 10:17       ` Alain Frisch
2015-11-09 10:35         ` Andreas Rossberg
2015-11-09 12:28           ` Alain Frisch
2015-11-09 17:33           ` Alain Frisch
2015-11-09 18:09             ` Gabriel Scherer
2015-11-09 18:16               ` Andreas Rossberg
2015-11-09 21:12                 ` Gabriel Scherer
2015-11-09 22:06                   ` Alain Frisch
2015-11-09 22:27                   ` Andreas Rossberg
2015-11-09 22:57                     ` Jeremy Yallop
2015-11-10  0:11                   ` Hendrik Boom
2015-11-10  8:27                   ` Soegtrop, Michael
2015-11-10 10:26                     ` Romain Bardou
2015-11-10 10:44                       ` Alain Frisch
2015-11-10 10:55                         ` Romain Bardou
2015-11-10 13:17                           ` Alain Frisch
2015-11-10 13:41                             ` Romain Bardou
2015-11-10 14:01                               ` Alain Frisch
2015-11-13 15:36                           ` Romain Bardou
2015-11-10 11:17                         ` Soegtrop, Michael
2015-11-10 14:11                     ` Hendrik Boom
2015-11-10 14:40                       ` immanuel litzroth
2015-11-10 15:30                       ` Soegtrop, Michael
2015-11-10 17:28                         ` Gerd Stolpmann
2015-11-09 20:32               ` Alain Frisch

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPFanBF2dZdOKCdo4MZ9_Uss-kWmUMDiQVP-7+kEyG5SyusgTw@mail.gmail.com \
    --to=gabriel.scherer@gmail.com \
    --cc=caml-list@inria.fr \
    --cc=francois.berenger@inria.fr \
    --cc=michael.soegtrop@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

caml-list - the Caml user's mailing list

Archives are clonable: git clone --mirror https://inbox.ocaml.org/caml-list

AGPL code for this site: git clone https://public-inbox.org/ public-inbox