Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] CamlP4 Revised syntax comment
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2002-10-28 (16:53)
From: brogoff@s...
Subject: Re: [Caml-list] CamlP4 Revised syntax comment
On Mon, 28 Oct 2002, Daniel de Rauglaudre wrote:
> I like the way Ada ends its statements. However, as said in the
> chapter about the revised syntax (tutorial), we took the option not to
> end the statements with a keywork ("end", or "fi" or things like
> that), in order to show that all of that is functionnal.

I mostly like Ada syntax too. It could use a few more characters, like [] 
for arrays and Pascalish ^ for access types; blame the Steelman requirements 
doc, not Jean Ichbiah, for this! 

As you point out though, Ada is far from functional so I don't agree that it 
should be a model for an MLish syntax. 

> When you see:
>       if e1 then e2 else e3 end
> you don't have the impression that e2 or e3 are *results*: the "end"
> gives you the impression that everything is terminated. Often, newbies
> don't understand the functional way this statement must be read. If we
> change the syntax with this "end", it is going to be more difficult to
> explain then.
> This way, I regret a little bit the "do { }" of the "for" loop. A
> "do .. done" would have been more logical (same for "while").

I like having the sequencing syntax being the same with or without the loop, 
but I certainly understand that there is a valid argument for seeing them 
differently, since in a non-looping sequence you typically return the value of 
the last expression. 

I thought that do { } was a compromise, since some users just wanted {} or () 
to be the non-optional bracketing for sequences. I remember some of that 
discussion, and I certainly wouldn't mind that solution, or the creation of 
special non-alphabetic brackets for imperative constructs. I'm not fond of 
do .. done myself. 

-- Brian

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: