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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 5CC8DBC37 for ; Thu, 11 Feb 2010 07:50:38 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuwWACs3c0vNm0EP/2dsb2JhbACPQ4gxgwZ0vG6EVQSDEw X-IronPort-AV: E=Sophos;i="4.49,450,1262559600"; d="scan'208";a="44601988" Received: from virginia.nps.edu ([205.155.65.15]) by mail3-smtp-sop.national.inria.fr with ESMTP; 11 Feb 2010 07:50:37 +0100 Received: from Adric.ern.nps.edu ([172.20.216.170]) by virginia.nps.edu with Microsoft SMTPSVC(6.0.3790.3959); Wed, 10 Feb 2010 22:50:34 -0800 Received: by Adric.ern.nps.edu (Postfix, from userid 760) id E7E4117415; Wed, 10 Feb 2010 22:48:22 -0800 (PST) From: oleg@okmij.org To: caml-list@inria.fr Subject: Re: The need to specify 'rec' in a recursive function defintion Message-Id: <20100211064822.E7E4117415@Adric.ern.nps.edu> Date: Wed, 10 Feb 2010 22:48:22 -0800 (PST) X-OriginalArrivalTime: 11 Feb 2010 06:50:34.0499 (UTC) FILETIME=[82ABFD30:01CAAAE6] X-Spam: no; 0.00; oleg:01 recursive:01 defintion:01 ocaml:01 simply-typed:01 lambda:01 ocaml:01 recursive:01 mutable:01 variants:01 fixpoint:01 combinator:01 fixpoint:01 combinator:01 fixpoints:01 Fortunately OCaml is (much more) than simply-typed lambda calculus. Almost any feature of OCaml -- recursive data types, recursive types, reference cells, mutable records, exceptions, objects, recursive modules and polymorphic variants -- can be used to express the fixpoint combinator. Sometimes there is more than one way to use the same feature to express the fixpoint combinator. The more and less known ways of expressing fix are collected in the following document: http://okmij.org/ftp/ML/fixpoints.ml