* Re: [Caml-list] Guards vs. conditionals
[not found] <D4DBD8568F05D511A1C20002A55C008C11AC0404@uswaumsx03medge.med.ge.com>
@ 2002-12-27 7:37 ` Matt Gushee
2002-12-27 9:15 ` Luc Maranget
2002-12-28 19:18 ` [Caml-list] Can One Define LISP-like Macros in Ocaml? Dave Newman
0 siblings, 2 replies; 5+ messages in thread
From: Matt Gushee @ 2002-12-27 7:37 UTC (permalink / raw)
To: caml-list
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Caml-list] Guards vs. conditionals
2002-12-27 7:37 ` [Caml-list] Guards vs. conditionals Matt Gushee
@ 2002-12-27 9:15 ` Luc Maranget
2002-12-28 19:18 ` [Caml-list] Can One Define LISP-like Macros in Ocaml? Dave Newman
1 sibling, 0 replies; 5+ messages in thread
From: Luc Maranget @ 2002-12-27 9:15 UTC (permalink / raw)
To: mgushee; +Cc: caml-list
>
> 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?
Well, -d.... options show intermediate representations used by the
compiler. Lambda code is one of the earliest ones.
This is intented for debugging the compiler.
[Snip]
>
> 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?
>
Internally, all variables are unique, they are characterized by
a name from the source (for readable output) and an integer.
> --
> 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.
>
--Luc
-------------------
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Caml-list] Can One Define LISP-like Macros in Ocaml?
2002-12-27 7:37 ` [Caml-list] Guards vs. conditionals Matt Gushee
2002-12-27 9:15 ` Luc Maranget
@ 2002-12-28 19:18 ` Dave Newman
2002-12-28 19:47 ` Basile STARYNKEVITCH
1 sibling, 1 reply; 5+ messages in thread
From: Dave Newman @ 2002-12-28 19:18 UTC (permalink / raw)
To: caml-list
Seeing the LISP like output from -dlambda reminded me of a question
I've had about ocaml.
Is there any support for defining macros in ocaml akin to LISP defmacro?
--Dave
>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?
{{{ text removed }}}
>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)))
>
-------------------
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Caml-list] Can One Define LISP-like Macros in Ocaml?
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
0 siblings, 1 reply; 5+ messages in thread
From: Basile STARYNKEVITCH @ 2002-12-28 19:47 UTC (permalink / raw)
To: Dave Newman; +Cc: caml-list
>>>>> "Dave" == Dave Newman <tinman@pobox.com> writes:
Dave> Seeing the LISP like output from -dlambda reminded me of a
Dave> question I've had about ocaml.
Dave> Is there any support for defining macros in ocaml akin to
Dave> LISP defmacro?
That is what is camlp4 for. Use camlp4. See
http://caml.inria.fr/camlp4/index.html
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net
alias: basile<at>tunes<dot>org
8, rue de la Faïencerie, 92340 Bourg La Reine, France
-------------------
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Caml-list] Can One Define LISP-like Macros in Ocaml?
2002-12-28 19:47 ` Basile STARYNKEVITCH
@ 2002-12-29 3:06 ` Dave Newman
0 siblings, 0 replies; 5+ messages in thread
From: Dave Newman @ 2002-12-29 3:06 UTC (permalink / raw)
To: caml-list; +Cc: Basile STARYNKEVITCH
Ah! Thanks. I'll investigate camlp4.
--Dave
> >>>>> "Dave" == Dave Newman <tinman@pobox.com> writes:
>
> Dave> Seeing the LISP like output from -dlambda reminded me of a
> Dave> question I've had about ocaml.
>
> Dave> Is there any support for defining macros in ocaml akin to
> Dave> LISP defmacro?
>
>That is what is camlp4 for. Use camlp4. See
>http://caml.inria.fr/camlp4/index.html
>
>--
>
>Basile STARYNKEVITCH http://starynkevitch.net/Basile/
>email: basile<at>starynkevitch<dot>net
>alias: basile<at>tunes<dot>org
>8, rue de la Faïencerie, 92340 Bourg La Reine, France
-------------------
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
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2002-12-29 3:11 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <D4DBD8568F05D511A1C20002A55C008C11AC0404@uswaumsx03medge.med.ge.com>
2002-12-27 7:37 ` [Caml-list] Guards vs. conditionals Matt Gushee
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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox