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 60812D16D for ; Mon, 25 Jul 2005 10:44:51 +0200 (CEST) Received: from alex.barettalocal.com (h213-255-109-130.albacom.net [213.255.109.130] (may be forged)) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j6P8iolO004882 for ; Mon, 25 Jul 2005 10:44:51 +0200 Received: from [127.0.0.1] (localhost.localdomain [127.0.0.1]) by alex.barettalocal.com (Postfix) with ESMTP id 334752BAB90; Mon, 25 Jul 2005 10:43:47 +0200 (CEST) Message-ID: <42E4A642.7050502@barettadeit.com> Date: Mon, 25 Jul 2005 10:43:46 +0200 From: Alex Baretta User-Agent: Debian Thunderbird 1.0.2 (X11/20050331) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Stephane Glondu Cc: caml-list@yquem.inria.fr Subject: Re: [Caml-list] "Just say no!" campaign against Obj References: <42E2393B.5030209@inria.fr> <42E342FE.6060408@barettadeit.com> <200507241027.37362.Stephane.Glondu@crans.org> In-Reply-To: <200507241027.37362.Stephane.Glondu@crans.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 42E4A682.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; baretta:01 caml-list:01 baretta:01 recursion:01 recursion:01 variants:01 recursive:01 arises:01 recursive:01 campaign:98 ...:98 wrote:01 wrote:01 polymorphic:01 polymorphic:01 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=FORGED_RCVD_HELO autolearn=disabled version=3.0.3 Stephane Glondu wrote: > On Sunday 24 July 2005 00:27, Alex Baretta wrote: > > > Forgive my ignorance... I never heard of "polymorphic recursion" before. Is > it exactly polymorphic records (in which case I don't understand where the > name "polymorphic recursion" is from), or something else? A function definition is monomorphic-recursive when all recusive calls induce unifiable type constraints. With a few exceptions from the world of polymorphic variants, this means that all recursive calls take parameters of the same type. Polymorphic recursion arises when a recursive function is defined on a non-uniformly recursive data structure, such that the decomposition of the datastructure at each recursive step produces one or more sub-structures whose type is different from (non-unifiable with) with that of the formal parameter. Maybe the more theoretical gurus on the list will be able to clarify this issue with some self-contained examples. Alex -- ********************************************************************* http://www.barettadeit.com/ Baretta DE&IT A division of Baretta SRL tel. +39 02 370 111 55 fax. +39 02 370 111 54 Our technology: The Application System/Xcaml (AS/Xcaml) The FreerP Project