English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
How do I ..
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 1999-12-18 (17:25)
From: skaller <skaller@m...>
Subject: How do I ..
I'm confused:

       Objective Caml version 2.99 (99/12/08)

# let f (lx:x : int) = x + 1;;
Syntax error

Here, I have an argument x, a label lx, and a type declaration int.
What's the error? Can't I both label an argument, and also type it?

The whitespace rule is a bit weird .. but it makes some sense,
when compared with 'a for a type variable: the ' must come
right in front of the a, with no white space, so I guess
I can live with lablx:x as a labelled argument .. :-)

At first, I got really confused by the difference between
a label, and the name of the argument. Until I realised,
you can't use the name of the argument as a label, because
it would imply all arguments were labelled. In the tutorial,
it would be nice to replace ambiguous examples like:

	let f x:x ... 

where I can't tell which x is which, with

	let f xlabl:xparam ..

where the names clearly suggest what is what.

John Skaller, mailto:skaller@maxtal.com.au
10/1 Toxteth Rd Glebe NSW 2037 Australia
homepage: http://www.maxtal.com.au/~skaller
voice: 61-2-9660-0850