From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id CF337BBAF for ; Tue, 2 Sep 2008 05:23:18 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApsEAHhOvEjAXQIm/2dsb2JhbACSDJpshWABAg X-IronPort-AV: E=Sophos;i="4.32,312,1217800800"; d="scan'208";a="28708493" Received: from discorde.inria.fr ([192.93.2.38]) by mail4-smtp-sop.national.inria.fr with ESMTP; 02 Sep 2008 05:23:18 +0200 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id m823NDWO019671 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Tue, 2 Sep 2008 05:23:18 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiIHAO1OvEhIDvb2amdsb2JhbACSDD4NAgkJEASZd4VgAQI X-IronPort-AV: E=Sophos;i="4.32,312,1217800800"; d="scan'208";a="16701860" Received: from ag-out-0708.google.com ([72.14.246.246]) by mail1-smtp-roc.national.inria.fr with ESMTP; 02 Sep 2008 05:23:17 +0200 Received: by ag-out-0708.google.com with SMTP id 9so4806815agd.9 for ; Mon, 01 Sep 2008 20:23:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type:content-transfer-encoding :content-disposition; bh=A6pEj1XKv1SGx8ixZf7T/eN8IYuKDIC9jVeTHToPkQ0=; b=CFWbkR6XCTAOkAabCIzVY/qboAK4FGlL0XtR4Usafy4vJ2LvZbYlhNeIrohFDK8dHY k/3Bg50q2TayT8UQsKN7GqL0pDipE7waXfYj4HMz+vs5wKhaGFh1E8MDoQLffCZyUeQY 9fWLt3rxpbPndfw1SADPe4RJpvI9XZbxQyBDE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition; b=h0EfkoziJhlUvS41HTQlD4k2+dNr7nSEViICIoxNZhhB3O4Ehb5sKwKeco5fTksK/B 7l0hh1ZtV+5IUiZZxwgdPkhzuDYBj8NxOKwcJRsRpCSmowX2kct9o0srEvZ90kfIFX2H BTSp40UebqcBRiOYF+HgmK6ndptWzzWW5vTS0= Received: by 10.90.63.15 with SMTP id l15mr8857831aga.1.1220325796786; Mon, 01 Sep 2008 20:23:16 -0700 (PDT) Received: by 10.90.63.19 with HTTP; Mon, 1 Sep 2008 20:23:16 -0700 (PDT) Message-ID: Date: Tue, 2 Sep 2008 05:23:16 +0200 From: "circ ular" To: caml-list@inria.fr Subject: is there a switch or cond-statement? + type-problem MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Miltered: at discorde with ID 48BCB1A1.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; def:01 1.0:98 rec:01 int:01 cond:02 expression:02 float:03 float:03 let:03 pow:10 pow:10 circ:13 case:13 type:14 type:14 how can I do like this or use cond or case? def power(nbr, po): if po > 0: return nbr * power(nbr, po-1) if po < 0: return 1 / power(nbr, -1 * po) if po == 0: return 1 and ofc make it tailrecursive but that I know how. also, how do I get it to be a float-function? let rec powerx(n, pow, acc) = if pow > 0.0 then powerx(n, pow -. 1, acc *. n) else if pow < 0.0 then 1.0 /. powerx(n, pow *. (-1), acc) else acc ;; Characters 70-71: then powerx(n, pow -. 1, acc *. n) ^ This expression has type int but is here used with type float # but it is used with float evrywhere no?