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 729D9BBC4 for ; Sat, 4 Apr 2009 12:14:06 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Au8AAMfP1knUnwcjjmdsb2JhbACCIZQFAQEBAQkLCAkPBrYjhA8G X-IronPort-AV: E=Sophos;i="4.39,323,1235948400"; d="scan'208";a="37850061" 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 12:14:05 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AigFAIvP1knUnw6T/2dsb2JhbACCIcpqhA8G Received: from ptb-relay03.plus.net ([212.159.14.147]) by relay.ptn-ipout01.plus.net with ESMTP; 04 Apr 2009 11:14:05 +0100 Received: from [87.112.226.235] (helo=leper.local) by ptb-relay03.plus.net with esmtp (Exim) id 1Lq2t3-0006kG-Dd for caml-list@yquem.inria.fr; Sat, 04 Apr 2009 11:14:05 +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 11:20:25 +0100 User-Agent: KMail/1.9.9 References: <200904031256.33357.jon@ffconsultancy.com> <200904031546.14071.jon@ffconsultancy.com> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200904041120.25652.jon@ffconsultancy.com> X-Plusnet-Relay: 905efdc9f618b797c414d2345176b381 X-Spam: no; 0.00; bunzli:01 ocaml:01 translating:01 non-trivial:01 ocaml's:01 byte:01 byte:01 arrays:01 mutable:01 arrays:01 mutable:01 2009:98 46,:98 frog:98 wrote:01 On Friday 03 April 2009 16:03:25 Daniel B=FCnzli wrote: > Le 3 avr. 09 =E0 16:46, Jon Harrop a =E9crit : > > Just because my OCaml programs were mutating strings and translating > > that into > > F# is non-trivial if the string is shared or big. In essence, I've > > always > > used OCaml's strings as a more efficient byte array. In fact, the best > > translation to F# is often to use byte arrays as a replacement for > > strings. > > So immutable strings are not a "PITA" you are just using them for > something they should not be taken for (mutable byte arrays). Except that mutable byte arrays are not treated as strings, e.g. they are=20 pretty printed as a garbled pile of bytes. Moreover, immutable strings=20 implemented on top of arrays have awful performance characteristics. If=20 you're going to use immutable strings then implement it as a rope... =2D-=20 Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e