caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: skaller <skaller@users.sourceforge.net>
To: Christophe TROESTLER <debian00@tiscali.be>
Cc: "O'Caml Mailing List" <caml-list@inria.fr>
Subject: Re: [Caml-list] failwith, raise and type inference
Date: 06 Apr 2004 17:05:44 +1000	[thread overview]
Message-ID: <1081235143.19232.22.camel@pelican> (raw)
In-Reply-To: <20040406.031524.77866470.debian00@tiscali.be>

On Tue, 2004-04-06 at 11:15, Christophe TROESTLER wrote:

> Well I have a little question on this.  The guide says "Arithmetic
> operators: the same rules as in mathematics." but
> 
> -. 3.**2.
> 
> returns 9. while in math -x^2 means -(x^2) and not (-x)^2 !  I am
> curious why such an oddity.

The correct grammar here is rather nasty.
I use it in Felix, but i'm not at all sure it's
a good idea. The problem comes with:

	-x^2, x^-2, x^2^3

which are

	-(x^2), x^(-2), x^(2^3)

I use this grammar (which I hope delivers the above),
and is supposed to be the same as FORTRAN:
the nastiness is the 'uplink' from power to 
prefixed.

term:
  ...
  prefixed { $1 }

prefixed:
  | PLUS power  { apl $1 "pos" $2 }
  | MINUS power { apl $1 "neg" $2 }
  | TILDE power { apl $1 "compl" $2 }
  | power       { $1 }

/* exponentiation is right associative */
power:
  | superscript STARSTAR prefixed      { apl2 $2 "pow" [$1; $3] }
  | superscript { $1 }

superscript:
 ...

Knuth found this whole idea so distasteful that
in TeX the rule is that ^ and _ (super and subscript
operators) are unassociative and require explicit
bracketing.

Consider also:

	fgx
which usually means f(g(x)) but can also mean (fg)x ... 
I'm not sure there *are* any 'usual' rules in maths.

-- 
John Skaller, mailto:skaller@users.sf.net
voice: 061-2-9660-0850, 
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net



-------------------
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


  reply	other threads:[~2004-04-06  7:05 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-04-02 13:41 Paul Guyot
2004-04-02 13:49 ` Frederic van der Plancke
2004-04-02 13:56   ` Paul Guyot
2004-04-02 13:51 ` Nicolas Cannasse
2004-04-02 13:59 ` Correnson Loïc
2004-04-02 14:09 ` Luc Maranget
2004-04-02 19:39   ` [Caml-list] weird floating poing behavior on windows Zeno Lee
2004-04-02 20:03     ` Greg Bacon
2004-04-02 20:07     ` David Brown
2004-04-02 20:31       ` Zeno Lee
2004-04-02 20:50         ` Pierre Weis
2004-04-02 22:01         ` Brian Hurt
2004-04-02 21:58     ` Brian Hurt
2004-04-02 20:28   ` [Caml-list] failwith, raise and type inference Pierre Weis
2004-04-05 22:52     ` Ker Lutyn
2004-04-06  1:07       ` Jacques Garrigue
2004-04-06  5:23         ` Issac Trotts
2004-04-06 15:15           ` skaller
2004-04-06  1:15       ` Christophe TROESTLER
2004-04-06  7:05         ` skaller [this message]
2004-04-06 11:29           ` Eric C. Cooper
2004-04-09  7:18           ` Christophe TROESTLER
2004-04-09  7:32             ` Xavier Leroy
2004-04-09  8:03               ` skaller

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=1081235143.19232.22.camel@pelican \
    --to=skaller@users.sourceforge.net \
    --cc=caml-list@inria.fr \
    --cc=debian00@tiscali.be \
    /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).