Version française
Home     About     Download     Resources     Contact us    
Browse thread
log function without evaluate arguments
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Erik de Castro Lopo <mle+ocaml@m...>
Subject: Re: [Caml-list] log function without evaluate arguments
Christopher L Conway wrote:

> On 11/6/07, Brian Hurt <bhurt@janestcapital.com> wrote:
> >  Also, creating a lazy thunk in Ocaml is expensive (like 140+ clock cycles),
> > while passing an argument into a function is cheap- and the common case will
> > be that the argument won't need to be evaluated, just passed in.
> 
> What does this mean? Did OCaml become non-strict while I wasn't looking?

Ocaml is strict by default and optionally lazy.

The code being discussed was this:

    log (lazy (Printf.printf "%s" (awfully_long_computation ())))

where everything inside

    (lazy X)

is lazy evaluated.

Erik
-- 
-----------------------------------------------------------------
Erik de Castro Lopo
-----------------------------------------------------------------
"I'd rather not work with people who aren't careful. It's darwinism
in software development." -- Linus Torvalds on the linux-kernel list