English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

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: 2007-11-07 (04:00)
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 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