From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id VAA15371; Fri, 30 Jan 2004 21:11:56 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id VAA14326 for ; Fri, 30 Jan 2004 21:11:55 +0100 (MET) Received: from mail4.tpgi.com.au (mail.tpgi.com.au [203.12.160.61]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id i0UKBsv29928 for ; Fri, 30 Jan 2004 21:11:54 +0100 (MET) Received: from syd-ts18-2600-163.tpgi.com.au (syd-ts18-2600-163.tpgi.com.au [203.58.21.163]) by mail4.tpgi.com.au (8.12.10/8.12.10) with ESMTP id i0UKBPZA000473; Sat, 31 Jan 2004 07:11:27 +1100 Subject: Re: [Caml-list] ocaml and concurrency From: skaller Reply-To: skaller@tpg.com.au To: Martin Berger Cc: The Trade In-Reply-To: <40199FE0.1070100@dcs.qmul.ac.uk> References: <20040127063230.GA12482@inv_machine> <200401282326.i0SNQntl004612@bismarck-chet.watson.ibm.com> <97908806-5238-11D8-8975-000393B8133A@wetware.com> <4018E282.2040404@dcs.qmul.ac.uk> <401930C6.8060907@dcs.qmul.ac.uk> <40193B59.9050700@ps.uni-sb.de> <40194644.9060308@dcs.qmul.ac.uk> <1075405078.3632.106.camel@localhost.localdomain> <40199FE0.1070100@dcs.qmul.ac.uk> Content-Type: text/plain Message-Id: <1075493561.23595.33.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 31 Jan 2004 07:12:41 +1100 Content-Transfer-Encoding: 7bit X-TPG-Antivirus: Passed X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 tpg:99 2004:99 theorist:01 theorist:01 passing:01 tpg:99 glebe:01 2037,:01 9660:01 ocaml:01 05,:01 nsw:01 syntax:02 snail:02 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Fri, 2004-01-30 at 11:05, Martin Berger wrote: > > Perhaps because you're a type theorist? > > being a type theorist has many disadvantages ... > > > C not only *does* have function types, it has > > first class function values just like ML does. > > well, i'm not so sure about this for two reasons. > > firstly, NULL-pointers > > (A --> T) + Error Agree. I glossed over that :-) > secondly, there's the "location restriction". maybe it's an > issue of taste, but one might argue that for function really > being first class -- as in lambda calculi, whenever we have > a piece of code C with free variable x_1 of type T_1, ..., > x_n of type T_n, then we can abstract and form > (lambda x_1 ... x_n . C), as we can in ML, but not > in C/Java/C++. Neither ML nor C is lambda calculus: they use distinct syntax. ML is closer of course, but in C you can always abstract a piece of code even if it means passing all the variables in the environment one at a time. -- John Max Skaller, mailto:skaller@tpg.com.au snail:25/85c Wigram Rd, Glebe, NSW 2037, Australia. voice:61-2-9660-0850. Checkout Felix: http://felix.sf.net ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners