Ingo Blechschmidt writes:
> Hi,
>
> Luke Palmer wrote:
> >> ...which makes me wonder if it'd be good|cool|whatever to not only
> >> have lazy lists, but also lazy *values*...: :))
> >
> > Then every expression that referenced lazy values would be lazy in
> > terms
> > of them. And once you want to print X digits of the lazy answer, you
> > have to go back through the lazy values and caluclate to what
> > precision
> > you need them.
>
> this is (to a lesser extend) necessary for lazy arrays, too, isn't it?
> my @nums = (1...);
> my @foo = @nums.map:{ ... }; #1
> my @bar = @foo .map:{ ... }; #2
> my @baz = @bar .map:{ ... }; #3
> # no map body executed
> say @nums[0..10];
> # map bodies of #1, #2, and #3 executed
Right. Computing how many of those you need is trivial for all of our
provided list operations. The question is:
my $pi = lazy_pi;
my $e = lazy_e;
my $epi = $e ** $pi;
say substr($epi, 0, 400);
How many digits of $pi and $e do we need to accurately compute e**pi to
400 digits? Our equation, using differential error analysis, is:
d($epi) == $e**$pi * ($pi/$e * d($e) + log($e) * d($pi))
Now, Perl has to solve that baby to see what values of d($e) and d($pi)
would give an acceptable d($epi). I don't believe that we've stated
that Mathematica will be embedded in Perl (yet :-).
Luke