From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 9BF62BB83 for ; Mon, 29 May 2006 04:40:35 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id k4T2eYwH012656 for ; Mon, 29 May 2006 04:40:34 +0200 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id EAA10714 for ; Mon, 29 May 2006 04:40:34 +0200 (MET DST) Received: from out3.smtp.messagingengine.com (out3.smtp.messagingengine.com [66.111.4.27]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id k4T2eX5L012651 for ; Mon, 29 May 2006 04:40:33 +0200 Received: from frontend3.internal (frontend3.internal [10.202.2.152]) by frontend1.messagingengine.com (Postfix) with ESMTP id 9BACBD6849D; Sun, 28 May 2006 22:40:31 -0400 (EDT) Received: from heartbeat1.messagingengine.com ([10.202.2.160]) by frontend3.internal (MEProxy); Sun, 28 May 2006 22:40:32 -0400 X-Sasl-enc: BmWRMmZWgXm8GA4X0XZcSH2NaCfase3wsi6hn3dbNyUD 1148870431 Received: from [172.16.13.141] (burnham.ljcrf.edu [192.231.106.2]) by mail.messagingengine.com (Postfix) with ESMTP id 6FD956A20; Sun, 28 May 2006 22:40:29 -0400 (EDT) Date: Sun, 28 May 2006 19:36:08 -0700 (PDT) From: Martin Jambon X-X-Sender: martin@droopy To: "Harrison, John R" Cc: Caml List Subject: RE: [Caml-list] Re: immutable strings (Re: Array 4 MB size limit) In-Reply-To: <196F1D996F92CD46A542EA519DB8CE4703CCA9F0@orsmsx409> Message-ID: References: <196F1D996F92CD46A542EA519DB8CE4703CCA9F0@orsmsx409> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Miltered: at concorde with ID 447A5F22.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 447A5F21.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; ocaml:01 ocaml:01 wrote:01 polymorphic:01 caml-list:01 interfaces:01 immutable:01 immutable:01 strings:01 strings:01 jambon:01 jambon:01 data:02 functional:02 string:02 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.3 Hi John, On Sun, 28 May 2006, Harrison, John R wrote: > With immutable strings, you'd never need to do conversions at the module > interfaces. As with any other functional data structure, you only copy > when you want to change part of it. OK, but let's be pragmatic: what kind of interface and implementation do you have in mind? (and then: isn't it possible to implement in OCaml?) If anyone is interested: Before posting I tried a polymorphic (wrt mutability) string type. It was fun enough, but it doesn't scale very well. I put it there: http://martin.jambon.free.fr/ocaml.html#gstring Martin -- Martin Jambon, PhD http://martin.jambon.free.fr Edit http://wikiomics.org, bioinformatics wiki