From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Delivered-To: caml-list@yquem.inria.fr Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id C2475BC88 for ; Mon, 7 Feb 2005 03:51:29 +0100 (CET) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j172pRD9004230 for ; Mon, 7 Feb 2005 03:51:29 +0100 Received: from [192.168.1.200] (ppp212-197.lns2.syd3.internode.on.net [203.122.212.197]) by smtp3.adl2.internode.on.net (8.12.9/8.12.9) with ESMTP id j172pHjk077022; Mon, 7 Feb 2005 13:21:18 +1030 (CST) Subject: Re: [Caml-list] The boon of static type checking From: skaller Reply-To: skaller@users.sourceforge.net To: Radu Grigore Cc: Jon , caml-list@yquem.inria.fr In-Reply-To: <7f8e92aa05020614264edc454@mail.gmail.com> References: <891bd33905020213315a2ebb18@mail.gmail.com> <7f8e92aa0502060222383aac60@mail.gmail.com> <7f8e92aa05020614264edc454@mail.gmail.com> Content-Type: text/plain Organization: Message-Id: <1107744676.6363.417.camel@pelican.wigram> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 07 Feb 2005 13:51:17 +1100 Content-Transfer-Encoding: 7bit X-Miltered: at nez-perce with ID 4206D7AF.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 sourceforge:01 wrote:01 compiler:01 recursive:01 recursion:01 pointers:01 cvs:01 glebe:01 26,:98 061:98 nsw:01 scope:01 scope:01 checking:01 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: On Mon, 2005-02-07 at 09:26, Radu Grigore wrote: > Do you have an example where forking lineages > is useful? Sure -- in a compiler a Map representing the symbol table works well with recusive analysis, since when you pop out of a scope, the symbols in the old scope just 'remain' as they were and the ones added in the inner scope just 'disappear'. I use this feature of lists to analyse graphs using recursive descent all the time, using the list to track the current path to prevent infinite recursion by identifying uplinks (weak pointers). So yes, the persistence is very useful in a wide variety of circumstances. I dare say, database programmers would kill for a functional database .. of course programmers have been using CVS for a while .. even C++ people :) -- John Skaller, mailto:skaller@users.sf.net voice: 061-2-9660-0850, snail: PO BOX 401 Glebe NSW 2037 Australia Checkout the Felix programming language http://felix.sf.net