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.3 required=5.0 tests=AWL,HTML_MESSAGE,SPF_NEUTRAL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id E3152BC69 for ; Thu, 18 Oct 2007 22:07:10 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAAAP9ZF0fRVca/i2dsb2JhbACCc4tbAgEIBAQTEQWBKQ X-IronPort-AV: E=Sophos;i="4.21,297,1188770400"; d="scan'208";a="18262370" Received: from rv-out-0910.google.com ([209.85.198.191]) by mail4-smtp-sop.national.inria.fr with ESMTP; 18 Oct 2007 22:07:09 +0200 Received: by rv-out-0910.google.com with SMTP id k20so238264rvb for ; Thu, 18 Oct 2007 13:07:08 -0700 (PDT) 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:references; bh=Qdd7UCIbZLuW1hm4nyQImrYeqDPI8POMHYRGy4mJNXM=; b=EEaaU1frcWoDEQOeQRgwOyJFWrrJQvObR1P1UE8UP4gCCPnG1zYl/1CV8ytTP/bsf5Gw60H/L4CKN9dwq4jaX3c+523z3B4NJQPY2hL7JCyLnD4D2YvLsmqsmCdgTUi2r/ymMe1BoUaFpUCQtiYBZYk7Z5OgNFSbjHZvm1oGGXU= 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:references; b=AdJkZQa7L0ZdhjYm33+KM4s8ofe0zjQuCN1lemglb8wdsqAD4TLncPooHCGc3+aLz818oQmvMJS9R9Zg/nhQkbnEBmlp9Ry9JS9tX6KODtwcdEaIUjxntlvHESktRR4WHigjXnXBYvcs+OAW2PqxB0oXSwXqXMu3YemnkyCQgKk= Received: by 10.141.79.12 with SMTP id g12mr547623rvl.1192738028487; Thu, 18 Oct 2007 13:07:08 -0700 (PDT) Received: by 10.141.83.10 with HTTP; Thu, 18 Oct 2007 13:07:08 -0700 (PDT) Message-ID: Date: Thu, 18 Oct 2007 22:07:08 +0200 From: Tom To: "Jon Harrop" Subject: Re: [Caml-list] Help me find this pdf Cc: caml-list@yquem.inria.fr In-Reply-To: <200710181325.30668.jon@ffconsultancy.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_1913_14324193.1192738028471" References: <200710181325.30668.jon@ffconsultancy.com> X-Spam: no; 0.00; rossberg:01 rossberg:01 sheard:01 haskell:01 fpls:01 sheard:01 haskell:01 fpls:01 2007,:98 mpg:98 2007,:98 mpg:98 sourceforge:01 sourceforge:01 wrote:01 X-Attachments: cset="UTF-8" cset="UTF-8" ------=_Part_1913_14324193.1192738028471 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline On 18/10/2007, Andreas Rossberg wrote: > > > I guess you mean this one: > > http://web.cecs.pdx.edu/~sheard/papers/ExplicitLazy.ps > > The primitive you're alluding to is called "mimic" in it. Exactly! Thanks! I owe my (future) success to you :) On 18/10/2007, skaller wrote: > > > No, but Felix does it by default > What do you mean? You mean that if I write a map map f [] = [] map f x:xs = f x : map f xs I can apply it both to infinite and lazy lists? nums n = n : nums (n + 1) map (+1) (nums 4) map (print_int) [1; 5; 6] On 18/10/2007, Jon Harrop wrote: > > > Scala can do something similar by controlling evaluation simply by > altering > the signature. However, I've reviewed Haskell recently and I think > complete > laziness is more of a hindrance than a benefit. The only think I'd like to > see added to eager FPLs is the ability to pattern match over lazy values, > forcing them only when necessary. > I never said anything about complete laziness. Actually, I positively agree with you, and I was searching for this paper as I don't want complete laziness. However, I consider laziness very useful in particular situations! For example, see this comment: http://programming.reddit.com/info/2mxh4/comments/c2ngwb - Tom ------=_Part_1913_14324193.1192738028471 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline
On 18/10/2007, Andreas Rossberg <rossberg@mpi-sws.mpg.de> wrote:

I guess you mean this one:

  http://web.cecs.pdx.edu/~sheard/papers/ExplicitLazy.ps

The primitive you're alluding to is called "mimic" in it.

Exactly! Thanks! I owe my (future) success to you :)

On 18/10/2007, skaller <skaller@users.sourceforge.net> wrote:

No, but Felix does it by default

What do you mean? You mean that if I write a map

   map f [] = []
   map f x:xs = f x : map f xs

I can apply it both to infinite and lazy lists?

   nums n = n : nums (n + 1)

   map (+1) (nums 4)

   map (print_int) [1; 5; 6]

On 18/10/2007, Jon Harrop <jon@ffconsultancy.com> wrote:

Scala can do something similar by controlling evaluation simply by altering
the signature. However, I've reviewed Haskell recently and I think complete
laziness is more of a hindrance than a benefit. The only think I'd like to
see added to eager FPLs is the ability to pattern match over lazy values,
forcing them only when necessary.

I never said anything about complete laziness. Actually, I positively agree with you, and I was searching for this paper as I don't want complete laziness. However, I consider laziness very useful in particular situations! For example, see this comment: http://programming.reddit.com/info/2mxh4/comments/c2ngwb

 - Tom
------=_Part_1913_14324193.1192738028471--