From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 083307FB0A for ; Wed, 26 Nov 2014 13:16:23 +0100 (CET) X-IronPort-AV: E=Sophos;i="5.07,462,1413237600"; d="scan'208";a="109677582" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 26 Nov 2014 13:16:22 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id ED9687FB0B; Wed, 26 Nov 2014 13:16:22 +0100 (CET) Date: Wed, 26 Nov 2014 13:16:20 +0100 To: caml-list@inria.fr In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: QUOTED-PRINTABLE From: "Jonathan Kimmitt" X-Mailer: Sympa 6.1.17 Subject: Re: [Caml-list] teaching OCaml Dear Robert, Since you are thinking of switching to F#, without Microsoft bashing I do feel I have to point out some of the shortcomings of their functional language. First of all by using the CLR it runs rather slowly, especially considering almost everything is an object. The second blunder is the re- introduction of the NULL pointer, that beast of many horns which OCaml works so hard to get rid of (Some _/None is the type-safe alternative). A further complication for beginners is that the char type is unicode so it is not possible to make use of nice syntax like "match ch with 'A'..'Z'". But the real bugbear for teaching is that indentation is by default significant in = the syntax (instead of using ()/begin/end like OCaml). You can easily imagine t= he wonderful results of importing an indentation specific language into Outlook or Word to write an assignment given the cavalier attitude to line breaks which is taken by the Office suite in general. I know there are supporters = of the lite syntax on the list but to me it is a can of worms, comparable to t= he way that Outlook uppercases every word at the beginning of a line whether it is the start of a sentence or not. Finally don't forget F# has operator overloading so in a routine "let f x y =3D x+y" instead of assuming x and y are integers as OCaml would= do, instead some obscure error message pops up such as "unable to infer type in this context". Plus =C3=A7a change plus c'est la m=C3=AAme chose ..