caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Matt Gushee <mgushee@havenrock.com>
To: caml-list@inria.fr
Subject: Re: [Caml-list] Guards vs. conditionals
Date: Fri, 27 Dec 2002 00:37:09 -0700	[thread overview]
Message-ID: <20021227073709.GD608@swordfish> (raw)
In-Reply-To: <D4DBD8568F05D511A1C20002A55C008C11AC0404@uswaumsx03medge.med.ge.com>

On Thu, Dec 26, 2002 at 09:55:09PM -0600, Gurr, David (MED, self) wrote:
> try "ocamlc -dlambda foo.ml"

Wow. That outputs something that looks a lot like LISP. And -dlambda
seems to be undocumented, at least in the man page and the HTML user's
manual. What is it intended for?

Just in case anyone's interested, here are the two programs and the
results of calling the above command on them:

-- foo1.ml ----------------------------------------------------------
let foo =                                                       
  function                                                                  
  | i when i >= 500 -> true                                                 
  | i -> false in
    for i = 1 to 100000 do
      ignore (foo (Random.int 1000))
    done

---------------------------------------------------------------------

bash-2.05a$ ocamlc -dlambda foo1.ml 
(setglobal Foo1!
  (seq
    (let (foo/56 (function i/57 (if (>= i/57 500) 1a 0a)))
      (for i/59 1 to 100000
        (ignore (apply foo/56 (apply (field 4 (global Random!)) 1000)))))
    (makeblock 0)))


-- foo2.ml ----------------------------------------------------------
let foo i =                                                       
  if i >= 500 then true
  else false in
  for i = 1 to 100000 do
    ignore (foo (Random.int 1000))
  done
  
---------------------------------------------------------------------

bash-2.05a$ ocamlc -dlambda foo2.ml 
(setglobal Foo2!
  (seq
    (let (foo/56 (function i/57 (if (>= i/57 500) 1a 0a)))
      (for i/58 1 to 100000
        (ignore (apply foo/56 (apply (field 4 (global Random!)) 1000)))))
    (makeblock 0)))

I note that the output is identical except on the fourth line: i/59 vs.
i/58 . What does that notation represent, by the way?

-- 
Matt Gushee                 When a nation follows the Way,
Englewood, Colorado, USA    Horses bear manure through
mgushee@havenrock.com           its fields;
http://www.havenrock.com/   When a nation ignores the Way,
                            Horses bear soldiers through
                                its streets.
                                
                            --Lao Tzu (Peter Merel, trans.)
-------------------
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:[~2002-12-27  7:37 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <D4DBD8568F05D511A1C20002A55C008C11AC0404@uswaumsx03medge.med.ge.com>
2002-12-27  7:37 ` Matt Gushee [this message]
2002-12-27  9:15   ` Luc Maranget
2002-12-28 19:18   ` [Caml-list] Can One Define LISP-like Macros in Ocaml? Dave Newman
2002-12-28 19:47     ` Basile STARYNKEVITCH
2002-12-29  3:06       ` Dave Newman
2002-12-26  7:06 [Caml-list] Guards vs. conditionals Matt Gushee
2002-12-26  9:13 ` Sven Luther
2002-12-26 16:36   ` Pierre Weis
2003-01-02  9:54 ` Xavier Leroy

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=20021227073709.GD608@swordfish \
    --to=mgushee@havenrock.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).