[Haskell-cafe] CPS and the product function
bulat.ziganshin at gmail.com
Mon Apr 20 10:42:03 EDT 2009
Monday, April 20, 2009, 6:32:47 PM, you wrote:
0*_ = 0
x*y = x *# y
or vice versa
_*0 = 0
x*y = x *# y
where *# is original (*) definition. current ghc definiton just
performs cpu-level operation w/o checking for 0 since this is rarely
useful and need some time
OTOH, boolean operations are expected to short-circuit, so they are
defined properly. try
and (iterate [True,False])
> Hi Eugene,
> Clever solution.
> It didn't come right back so I interrupted it. Guess it would do all those multiplies by zero.
> Does anyone know how to define it to avoid that?
> --- On Mon, 4/20/09, Eugene Kirpichov <ekirpichov at gmail.com> wrote:
> From: Eugene Kirpichov <ekirpichov at gmail.com>
> Subject: Re: [Haskell-cafe] CPS and the product function
> To: "michael rice" <nowgate at yahoo.com>
> Cc: haskell-cafe at haskell.org
> Date: Monday, April 20, 2009, 9:40 AM
> Check that by experiment in ghci or by looking at the source:
Prelude*>> product [0..]
> Or search "product" at http://holumbus.fh-wedel.de/hayoo/hayoo.html
> and click on one of the Source links.
> 2009/4/20 michael rice <nowgate at yahoo.com>:
>> I've been looking at CPS in Haskell and wondering how many multiplications
>> the product function performs if it encounters a zero somewhere in the input
>> list. Zero?
>> Does anyone know the definition of the product function?
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
Bulat mailto:Bulat.Ziganshin at gmail.com
More information about the Haskell-Cafe