Evaluation Question
Hal Daume III
hdaume@ISI.EDU
Sat, 11 Jan 2003 11:14:50 -0800 (PST)
For each call, I believe. An exception might be if the call to nco is
inlined into the calling function, but this is unlikely as nco is
recursive.
So, you're probably better off with:
> nco wn = nco'
> where wn' = cis wn
> nco' = 1 : map (wn'*) nco'
In which case it will only be evaluated once.
HTH.
--
Hal Daume III
"Computer science is no more about computers | hdaume@isi.edu
than astronomy is about telescopes." -Dijkstra | www.isi.edu/~hdaume
On Sat, 11 Jan 2003, Matthew Donadio wrote:
> Hi all,
>
> I have a question about lazy evaluation. In the following function:
>
> > nco :: RealFloat a => a -> [ Complex a ]
> > nco wn = 1 : map ((*) (cis wn)) (nco wn)
>
> will the sin and cos associated with cis be evaluated once, or for each
> call?
>
> Thanks.
>
> --
> Matthew Donadio (m.p.donadio@ieee.org)
> _______________________________________________
> Haskell mailing list
> Haskell@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell
>