Thread overview  


January 16, 2013 Limited printing?  

 
In Mathematica and NumPy (and other systems used with REPL) if you print a very large array you receive a shortened output. In Mathematica: http://reference.wolfram.com/mathematica/tutorial/ShortAndShallowOutput.html Mathematica uses a representation like (but on default it shows more items. There is a way to print them all): Range[100] {0, 1, 2, <<94>>, 97, 98, 99} While numpy visualization is a bit simpler: >>> from numpy import array >>> array([0] * 10) array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) >>> array([0] * 10000) array([0, 0, 0, ..., 0, 0, 0]) Currently In D this shows all the items: writeln(iota(10_000)); Do you desire some way to have a shortened printing if the generated text is going to be huge? Bye, bearophile 
January 16, 2013 Re: Limited printing?  

 
Posted in reply to bearophile  On Wednesday, 16 January 2013 at 11:16:41 UTC, bearophile wrote: > In Mathematica and NumPy (and other systems used with REPL) if you print a very large array you receive a shortened output. In Mathematica: > > http://reference.wolfram.com/mathematica/tutorial/ShortAndShallowOutput.html > > Mathematica uses a representation like (but on default it shows more items. There is a way to print them all): > > Range[100] > > {0, 1, 2, <<94>>, 97, 98, 99} > > > While numpy visualization is a bit simpler: > >>>> from numpy import array >>>> array([0] * 10) > array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) >>>> array([0] * 10000) > array([0, 0, 0, ..., 0, 0, 0]) > > > Currently In D this shows all the items: > > writeln(iota(10_000)); > > Do you desire some way to have a shortened printing if the generated text is going to be huge? > > Bye, > bearophile writeln(iota(10_000).take(10)); ? 
January 16, 2013 Re: Limited printing?  

 
Posted in reply to Nicolas Sicard  Nicolas Sicard:
> writeln(iota(10_000).take(10)); ?
You have missed the point. What if you have a [iota(10_000), iota(10_000)]?
Bye,
bearophile

January 16, 2013 Re: Limited printing?  

 
Posted in reply to bearophile  On Wednesday, 16 January 2013 at 11:46:10 UTC, bearophile wrote:
> Nicolas Sicard:
>
>> writeln(iota(10_000).take(10)); ?
>
> You have missed the point. What if you have a [iota(10_000), iota(10_000)]?
OK, but is there a simple and general way to tell how to skip elements for ranges other than sorted numeric ones?

January 16, 2013 Re: Limited printing?  

 
Posted in reply to bearophile  On Wednesday, 16 January 2013 at 11:16:41 UTC, bearophile wrote:
> Do you desire some way to have a shortened printing if the generated text is going to be huge?
I say no. IO isn't always for human consumption (as it usually is in Mathematica). You could very well be printing out as a means of serialisation, and you certainly don't want your data to be trimmed in that case.
For a systems programming language, consistency is absolutely critical.

January 16, 2013 Re: Limited printing?  

 
Posted in reply to Peter Alexander  Peter Alexander:
> I say no. IO isn't always for human consumption (as it usually is in Mathematica). You could very well be printing out as a means of serialisation, and you certainly don't want your data to be trimmed in that case.
Mathematica and NumPy on default shorten the output if it's too much large, and show it all on request. What I forgot to say in my first post is that in D it's probably better to have those conditions swapped, this means printing all on default, and adding a way to produce a shorter output on request.
Bye,
bearophile

January 16, 2013 Re: Limited printing?  

 
Posted in reply to bearophile  On Wednesday, 16 January 2013 at 14:05:03 UTC, bearophile wrote:
> Mathematica and NumPy on default shorten the output if it's too much large, and show it all on request. What I forgot to say in my first post is that in D it's probably better to have those conditions swapped, this means printing all on default, and adding a way to produce a shorter output on request.
A format specifier like this, then, adding width and/or "precision" to "%(":
writefln("%10.3(%s, %)", iota(10_000));
// Prints: "0, 1, 2, ... 7, 8, 9".
could be useful.

Copyright © 19992016 by Digital Mars ®, All Rights Reserved