<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE message PUBLIC
  "-//MLarc//DTD MLarc output files//EN"
  "../../mlarc.dtd"[
  <!ATTLIST message
    listname CDATA #REQUIRED
    title CDATA #REQUIRED
  >
]>

  <?xml-stylesheet href="../../mlarc.xsl" type="text/xsl"?>


<message 
  url="2002/12/e8956ad76e72ddd27c1ee0c4c94f2234"
  from="Matt Gushee &lt;mgushee@h...&gt;"
  author="Matt Gushee"
  date="2002-12-27T07:37:18"
  subject="Re: [Caml-list] Guards vs. conditionals"
  prev="2002/12/559912569fba2d8a4b4754699c085d6c"
  next="2002/12/0a20c8ad6f2bdd101d65c6f54b7dfd02"
  next-in-thread="2002/12/6cf84c26831187ed2809557c6222ca2e"
  prev-thread="2002/12/20995c2eed42f26e0a7193d54f646852"
  next-thread="2002/12/0a20c8ad6f2bdd101d65c6f54b7dfd02"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="Re: [Caml-list] Guards vs. conditionals">
<msg 
  url="2002/12/e8956ad76e72ddd27c1ee0c4c94f2234"
  from="Matt Gushee &lt;mgushee@h...&gt;"
  author="Matt Gushee"
  date="2002-12-27T07:37:18"
  subject="Re: [Caml-list] Guards vs. conditionals">
<msg 
  url="2002/12/6cf84c26831187ed2809557c6222ca2e"
  from="Dave Newman &lt;tinman@p...&gt;"
  author="Dave Newman"
  date="2002-12-28T19:21:09"
  subject="[Caml-list] Can One Define LISP-like Macros in Ocaml?">
<msg 
  url="2002/12/1ede51c3f4d12b247c7d8880d9135aba"
  from="Basile STARYNKEVITCH &lt;basile@s...&gt;"
  author="Basile STARYNKEVITCH"
  date="2002-12-28T19:47:51"
  subject="[Caml-list] Can One Define LISP-like Macros in Ocaml?">
<msg 
  url="2002/12/32b7837886085ff44ab3f8bd73a68204"
  from="Dave Newman &lt;tinman@p...&gt;"
  author="Dave Newman"
  date="2002-12-29T03:11:22"
  subject="Re: [Caml-list] Can One Define LISP-like Macros in Ocaml?">
</msg>
</msg>
</msg>
</msg>
</thread>

<contents>
On Thu, Dec 26, 2002 at 09:55:09PM -0600, Gurr, David (MED, self) wrote:
&gt; 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 &gt;= 500 -&gt; true                                                 
  | i -&gt; 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 (&gt;= 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 &gt;= 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 (&gt;= 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

</contents>

</message>

