From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id OAA08395; Mon, 24 Mar 2003 14:12:57 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f 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 OAA08457 for ; Mon, 24 Mar 2003 14:12:56 +0100 (MET) Received: from avalon.ens-lsh.fr (mailhost.ens-lsh.fr [193.51.131.2]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id h2ODCtf02911 for ; Mon, 24 Mar 2003 14:12:55 +0100 (MET) Received: from avalon.ens-lsh.fr (localhost [127.0.0.1]) by avalon.ens-lsh.fr (8.12.8/8.12.8) with ESMTP id h2OEAojH004989 for ; Mon, 24 Mar 2003 14:10:50 GMT Received: from ens-notes1.ens-lsh.fr (ens-notes1.ens-lsh.fr [10.2.1.44]) by avalon.ens-lsh.fr (8.12.8/8.12.8) with ESMTP id h2OEAnFv004986 for ; Mon, 24 Mar 2003 14:10:50 GMT Received: from ens-lyon.fr ([10.3.25.150]) by ens-notes1.ens-lsh.fr (Lotus Domino Release 5.0.10) with SMTP id 2003032414114060:868 ; Mon, 24 Mar 2003 14:11:40 +0100 Date: Mon, 24 Mar 2003 14:08:58 +0100 From: Damien To: caml-list@inria.fr Subject: [Caml-list] beta-reduction rules Message-Id: <20030324140858.592550a5.Damien.Pous@ens-lyon.fr> Organization: mosthagloups X-Mailer: Sylpheed version 0.8.10claws13 (GTK+ 1.2.10; i386-debian-linux-gnu) Mime-Version: 1.0 X-MIMETrack: Itemize by SMTP Server on ens-notes1/ENS-LSH(Release 5.0.10 |March 22, 2002) at 24/03/2003 14:11:40, Serialize by Router on ens-notes1/ENS-LSH(Release 5.0.10 |March 22, 2002) at 24/03/2003 14:11:41, Serialize complete at 24/03/2003 14:11:41 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-Spam: no; 0.00; damien:01 ens-lyon:01 val:01 recursion:01 'b-:01 'a-:01 rec:01 overflow:02 stack:02 arguments:03 let:04 equivalent:05 feature:07 looping:08 fun:08 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk hello, What are the rules for applying a function to its arguments ? # let g f i = f i;; val g : ('a -> 'b) -> 'a -> 'b = # let rec f0 x = fun i -> (f x) i;; val f0 : 'a -> 'b -> 'c = # let rec f1 x i = (f1 x) i;; val f1 : 'a -> 'b -> 'c = # let rec f2 x = g (f2 x);; val f2 : 'a -> 'b -> 'c = # let a = f0 ();; val a : '_a -> '_b = # let a = f1 ();; val a : '_a -> '_b = # let a = f2 ();; Stack overflow during evaluation (looping recursion?). I expected f0, f1 and f2 to be equivalent, but, f0 and f1 look like ['a * 'b->'c)] and f2 looks like ['a->('b->'c)] Is it a normal feature ? damien ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners