From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id B2F52BBC4 for ; Sat, 4 Apr 2009 19:19:42 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoIAAGIz10nUnwcjjmdsb2JhbACCIZQFAQEBAQkLCAkPBrUuhA8G X-IronPort-AV: E=Sophos;i="4.39,324,1235948400"; d="scan'208";a="37863782" Received: from relay.ptn-ipout01.plus.net ([212.159.7.35]) by mail4-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 04 Apr 2009 19:19:42 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArUEACcz10nUnw6S/2dsb2JhbACCIclyhA8G Received: from ptb-relay02.plus.net ([212.159.14.146]) by relay.ptn-ipout01.plus.net with ESMTP; 04 Apr 2009 18:19:41 +0100 Received: from [87.112.226.235] (helo=leper.local) by ptb-relay02.plus.net with esmtp (Exim) id 1Lq9Wv-00049R-Io for caml-list@yquem.inria.fr; Sat, 04 Apr 2009 18:19:41 +0100 From: Jon Harrop Organization: Flying Frog Consultancy Ltd. To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] Strings Date: Sat, 4 Apr 2009 18:26:00 +0100 User-Agent: KMail/1.9.9 References: <200904031256.33357.jon@ffconsultancy.com> <8697F924-0485-4E00-81DF-9BCF74D872EA@erratique.ch> <3CD463A4-9B3F-4139-B300-5C6B860C1DD4@osu.edu> In-Reply-To: <3CD463A4-9B3F-4139-B300-5C6B860C1DD4@osu.edu> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200904041826.00430.jon@ffconsultancy.com> X-Plusnet-Relay: a1881f5b17643760aa45967b53bcda09 X-Spam: no; 0.00; bunzli:01 val:01 mutable:01 const:01 2009:98 frog:98 char:01 wrote:01 wrote:01 unix:01 unix:01 caml-list:01 strings:01 strings:01 data:02 On Saturday 04 April 2009 18:11:20 Kuba Ober wrote: > On Apr 3, 2009, at 1:50 PM, Daniel B=FCnzli wrote: > > In fact I find the result of the following sequence of operations > > very disappointing for a functional programming language : > > > > Objective Caml version 3.11.0 > > > > # Sys.os_type;; > > - : string =3D "Unix" > > # let s =3D Sys.os_type;; > > val s : string =3D "Unix" > > # s.[0] <- 'a';; > > - : unit =3D () > > # Sys.os_type;; > > - : string =3D "anix" > > Perhaps mutable data of any type should be markable as const, with the > marking being permanent. Would a phantom type parameter be sufficient: [`RO|`RW] string > That's where I like C++/Qt copy-on-write strings a lot. They make life > easy. Just as long as they don't copy the entire string when I mutate a single ch= ar! =2D-=20 Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e