caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "circ ular" <circularfunc@gmail.com>
To: caml-list@inria.fr
Subject: is there a switch or cond-statement? nested functions?
Date: Wed, 3 Sep 2008 19:08:33 +0200	[thread overview]
Message-ID: <d5f6b0140809031008k216b1ce6s8cc7b6a2f588ecaa@mail.gmail.com> (raw)

thanks, the type problem is solved. but is there a way to write nested
functions? so the powerf isn't exposed outwards...

and how can I rewrite the if statements in a case or cond way? pattern
mathcing is only on types right? cond a la scheme would be nice.

let rec powerf(n, pow, acc) =
    if pow > 0.0
	then powerf(n, pow -. 1., acc *. n)
	else if pow < 0.0
	    then 1. /. powerf(n, pow *. (-1.), acc)
	    else acc ;;
let power(n, pow) = powerf(n, pow, 1.);;



---------- Forwarded message ----------
From:  <Ephaeton@gmx.net>
Date: Wed, Sep 3, 2008 at 7:27 AM
Subject: Re: [Caml-list] is there a switch or cond-statement? + type-problem
To: circ ular <circularfunc@gmail.com>


On Wed, Sep 03, 2008 at 06:55:22AM +0200, circ ular wrote:
> thanks, not it compiles but I get this error instead:
> # powerx(5.0,2.0);;
> Characters 6-15:
>   powerx(5.0,2.0);;
>         ^^^^^^^^^
> This expression has type float * float but is here used with type
>   float * float * float
> #

The error message tells you: You called powerx with two float parameters,
but you need three float parameters. When loooking at the definition
you see that you forgot to give the argument for the accumulator. Try
calling i as powerx(5., 2., 1.) instead :)

With kind regards,

-Martin


             reply	other threads:[~2008-09-03 17:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-03 17:08 circ ular [this message]
2008-09-03 17:24 ` [Caml-list] " Christophe TROESTLER
2008-09-03 17:38   ` Daniel Bünzli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d5f6b0140809031008k216b1ce6s8cc7b6a2f588ecaa@mail.gmail.com \
    --to=circularfunc@gmail.com \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).