From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: * X-Spam-Status: No, score=1.0 required=5.0 tests=AWL,SPF_NEUTRAL autolearn=disabled version=3.1.3 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id EA64ABC6B for ; Tue, 6 Nov 2007 19:40:28 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAM5DMEfAXQImh2dsb2JhbACOfwEICik X-IronPort-AV: E=Sophos;i="4.21,379,1188770400"; d="scan'208";a="4118637" Received: from discorde.inria.fr ([192.93.2.38]) by mail1-smtp-roc.national.inria.fr with ESMTP; 06 Nov 2007 19:40:28 +0100 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id lA6IeJIV005244 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Tue, 6 Nov 2007 19:40:28 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAEhEMEfRVZKzkmdsb2JhbACOfwEBBwIGExY X-IronPort-AV: E=Sophos;i="4.21,379,1188770400"; d="scan'208";a="5518870" Received: from wa-out-1112.google.com ([209.85.146.179]) by mail3-smtp-sop.national.inria.fr with ESMTP; 06 Nov 2007 19:40:20 +0100 Received: by wa-out-1112.google.com with SMTP id m34so2902206wag for ; Tue, 06 Nov 2007 10:40:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=h0IjZzF2mSolFzbyhd3wJWdUq6rYfbzoDQb56mYR9gY=; b=A6DAM6TlacSQJbAdKK4+WHIV7ZeAxmYIYqu+/T45prQcWyGBS9exCzek1HsPscl8K3iqXPdz5OxA8kS7lVykgnTg7fDwk8gC/XPj+805w99IeF0Eo+TOnaz3/y2xWpti8xYQslgZbaIKs34e+0CDmAGnF6wIIgB9Hmmi7MHSu+8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=KrlhzQJiOhywNgLf7i0J0y2FLIhKYLLbQ2F5VrR7d5MQHWmLz7Hiy35pjYxbq/5LtQ7u60LyLC45obyC8Y6dkpCeMj67S3EsOTN2tF2APFbSgldPO9X0GBhX7g8BkNDnndBJc/6uiO0k7KybGqLnXEunej2c22Xhi7vL6jKFaVg= Received: by 10.142.179.12 with SMTP id b12mr1738213wff.1194374419493; Tue, 06 Nov 2007 10:40:19 -0800 (PST) Received: by 10.143.168.5 with HTTP; Tue, 6 Nov 2007 10:40:19 -0800 (PST) Message-ID: <9d3ec8300711061040l424aac69y4b859a029d815089@mail.gmail.com> Date: Tue, 6 Nov 2007 13:40:19 -0500 From: "Till Varoquaux" To: "Nicolas Pouillard" Subject: Re: [Caml-list] log function without evaluate arguments Cc: tmp123 , caml-list In-Reply-To: <1194373338-sup-9994@ausone.local> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <47309EEC.4080706@menta.net> <1194373338-sup-9994@ausone.local> X-Miltered: at discorde with ID 4730B513.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; kprintf:01 printf:01 printf:01 val:01 wrote:01 caml-list:01 computation:01 computation:01 boolean:01 lazy:02 parameters:03 tmp:05 implement:06 tue:06 behave:06 On 11/6/07, Nicolas Pouillard wrote: > Excerpts from tmp123's message of Tue Nov 06 18:05:48 +0100 2007: > > Hello, > > > > In order to implement a function that prints log messages only, by > > example, if a boolean flag is true, and does nothing elsewhere, I've > > been reading the (long) post sequence "kprintf with user formatters" > > (2004 Jun 30). > > > > In this context, "does nothing" means not convert parameters to text nor > > evaluate them. > > Have a look to the Printf.ifprintf [1] function, it does exactly what you want. > > Regards, > Actually it doesn't: log (lazy (Printf.printf "%s" (awfully_long_computation ()))) when log_val is false (or sylvain's solution, which I prefer), will not behave like Printf.ifprinf "%s" (awfully_long_computation ()) (it won't evaluate its arguments). Till -- http://till-varoquaux.blogspot.com/