Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Gerard Huet <Gerard.Huet@inria.fr>
To: Brian Rogoff <bpr@best.com>, caml-list@inria.fr
Subject: Re: Revised syntax question
Date: Tue, 26 Sep 2000 16:58:33 +0200	[thread overview]
Message-ID: <200009261500.e8QF0G520563@concorde.inria.fr> (raw)

At 09:34 25/09/00 -0700, Brian Rogoff wrote:
>Hi,
>    I have an issue with the Revised syntax (from OCaml P4, with URL 
>http://caml.inria.fr/camlp4/manual/camlp4023.html). 
>
>How about 
>
>    do e1; e2; e3; done e4
>
>and change while/for to be consistent with this and return a value 
>in done?  
>
>    while e1 
>      do e2; 
>    done e3
>
>    for i = e1 to e2 do e3; done ()
>
>This saves a keyword "return" and looks a bit more consistent, though
>maybe a touch noisier when you don't return a value from a loop. Anyone 
>using Revised have a different opinion?
>
>-- Brian

I hate this return, and actually I do not like this dangling e4. Every 
imperative programming language I used had a list of statements construct,
and from LISP onwards we know how to mix imperative statements and values
(good old progn !). Semantic ayatollahs notwithstanding, it makes perfect
sense to interpret the sequence (s1 ; s2 ; ... ; sn) with operator ";" piping
the state of its first argument into the second one, and returning the value
of the second one. Furthermore it is consistent with the rest of the syntax
to use good old parentheses as begin-end brackets. All you need is to
EXTEND the revised syntax with a 5 line entry for expr at LEVEL "simple".

I usually indent my code
    ( statement 1
    ; statement 2
    ...
    ; statement n
    )
nicely symmetrical to 
    match foo with   (or fun or try expr with)
      [ case 1
      | case 2
      ...
      | case n
      ]
and I read "begin" for "(", "then" for ";" and "end" for ")", although
sometimes I say "returned" when I want to emphasise the returned value.

I'll be glad to communicate the 5 lines of camlp4 to whoever wants to try
this syntax; but all flame should be sent to /dev/null

Cheers,
Gérard





             reply	other threads:[~2000-09-26 20:10 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-09-26 14:58 Gerard Huet [this message]
2000-09-26 17:15 ` Brian Rogoff
2000-09-27  5:50 ` Daniel de Rauglaudre
2000-09-27  9:29   ` Marcin 'Qrczak' Kowalczyk
2000-09-28  4:36   ` Brian Rogoff
2000-09-28 12:01     ` Daniel de Rauglaudre
  -- strict thread matches above, loose matches on Subject: below --
2000-09-25 16:34 Brian Rogoff

Reply instructions:

You may reply publicly 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=200009261500.e8QF0G520563@concorde.inria.fr \
    --to=gerard.huet@inria.fr \
    --cc=bpr@best.com \
    --cc=caml-list@inria.fr \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox