From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id DDAEDBC88 for ; Thu, 10 Feb 2005 20:51:08 +0100 (CET) Received: from orsfmr005.jf.intel.com (fmr20.intel.com [134.134.136.19]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j1AJp7Bj016093 for ; Thu, 10 Feb 2005 20:51:08 +0100 Received: from orsfmr101.jf.intel.com (orsfmr101.jf.intel.com [10.7.209.17]) by orsfmr005.jf.intel.com (8.12.10/8.12.10/d: major-outer.mc,v 1.1 2004/09/17 17:50:56 root Exp $) with ESMTP id j1AJp5Fi023619; Thu, 10 Feb 2005 19:51:05 GMT Received: from orsmsxvs040.jf.intel.com (orsmsxvs040.jf.intel.com [192.168.65.206]) by orsfmr101.jf.intel.com (8.12.10/8.12.10/d: major-inner.mc,v 1.2 2004/09/17 18:05:01 root Exp $) with SMTP id j1AJoqL8005552; Thu, 10 Feb 2005 19:51:04 GMT Received: from orsmsx331.amr.corp.intel.com ([192.168.65.56]) by orsmsxvs040.jf.intel.com (SAVSMTP 3.1.2.35) with SMTP id M2005021011510402112 ; Thu, 10 Feb 2005 11:51:04 -0800 Received: from orsmsx407.amr.corp.intel.com ([192.168.65.50]) by orsmsx331.amr.corp.intel.com with Microsoft SMTPSVC(6.0.3790.211); Thu, 10 Feb 2005 11:51:04 -0800 X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable Subject: RE: [Caml-list] String to list to string Date: Thu, 10 Feb 2005 11:51:03 -0800 Message-ID: <012676D607FCF54E986746512C22CE7D02DF790C@orsmsx407> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [Caml-list] String to list to string Thread-Index: AcUPp4hDSzVVnrofT52st85VFtOH+wAAP78w From: "Harrison, John R" To: "Jon Harrop" , Cc: "Harrison, John R" X-OriginalArrivalTime: 10 Feb 2005 19:51:04.0639 (UTC) FILETIME=[DAE704F0:01C50FA9] X-Scanned-By: MIMEDefang 2.44 X-Miltered: at concorde with ID 420BBB2B.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 johnh:01 ocaml's:01 mutable:01 ocaml:01 ...:98 strings:01 strings:01 immutable:01 argument:01 functional:02 ichips:02 string:03 string:03 programming:03 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on yquem.inria.fr X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.2 X-Spam-Level: | > ...I consider OCaml's mutable strings a far worse design error. |=20 | That's interesting. Why? Because it destroys persistence, one of the most fundamental advantages of functional programming. Any function I call with a string argument can choose to modify it, and cause side-effects elsewhere. Even Java has immutable strings, doesn't it? And I notice this feature of OCaml is fixed in F#. All for very sound reasons, in my opinion. John.