Andy mentioned files, but yes, in a pipe this is true. Still, it's not
true on the REPL; I can't think of an obvious use case there, and if
there is one then having the programmer work around something like
*interactive-print-length* would be reasonable.

Note that we are talking about an infinite data structure here, not an
infinite loop. As a specific example, say we wanted to produce a
/dev/random like command, you would not achieve this by printing an
infinite random list because you'd get a "(" a the beginning which was
never closed. You'd loop. So, this would not be affected by a limit on
the size of a single data structure.

Gary Trakhman <gary.trakh...@gmail.com> writes:

> It's possible for an infinite print to be just fine, it's a streaming API
> after all, consider invoking a clojure program in the middle of some unix
> pipes.
>
>
> On Tue, Apr 1, 2014 at 12:58 PM, Phillip Lord
> <phillip.l...@newcastle.ac.uk>wrote:
>
>>
>> Of course, in this circumstances, infinitely long lists are not going to
>> behave well either.
>>
>> But, it seems to me, that this is (or should be) independent of
>> interactive use in the REPL. The current behaviour is never nice.
>> Probably, there needs to be a *interactive-print-length* var or
>> equivalent.
>>
>> Andy Fingerhut <andy.finger...@gmail.com> writes:
>>
>> > One argument for default value of *print-length* being nil: Plenty of
>> > people print Clojure data structures to files and later read them back
>> in.
>> > The data would be corrupted if *print-length* was a too-small numeric
>> value
>> > for your particular data.  It might not be obvious until much later that
>> > you have lost data.
>> >
>> > Andy
>> >
>> >
>> > On Tue, Apr 1, 2014 at 9:00 AM, Andreas Liljeqvist <bon...@gmail.com>
>> wrote:
>> >
>> >> Is there any good reason for not providing a default value for
>> >> *print-length*?
>> >> I think that if you *really* want to print a list containing 100K items,
>> >> you would have to set *print-length*.
>> >>
>> >> Basically it seems less harmful to set it to a nice value by
>> default(42?)
>> >> than possible locking up the REPL.
>> >>
>> >>
>> >> On Tue, Apr 1, 2014 at 2:49 AM, Gary Trakhman <gary.trakh...@gmail.com
>> >wrote:
>> >>
>> >>> http://clojuredocs.org/clojure_core/clojure.core/*print-length*
>> >>>
>> >>>
>> >>> On Mon, Mar 31, 2014 at 8:49 PM, Christopher Howard <
>> cmhowa...@alaska.edu
>> >>> > wrote:
>> >>>
>> >>>> Is there some kind of "safe" function for printing representations of
>> >>>> lazy, infinite data structures? I'm finding I like using them inside
>> >>>> other data structures here and there. However, when I go to play
>> >>>> around with things in the REPL, sooner or later my workflow is
>> >>>> interrupted by 3 million characters streaming across the console.
>> >>>>
>> >>>> I don't imagine there would be any way for the REPL to detect that a
>> >>>> lazy sequence was infinite. However, if it would simply refuse to
>> >>>> evaluate lazy sequence (say, represent them by some special
>> identifier)
>> >>>> that
>> >>>> would be good enough for me.
>> >>>>
>> >>>> --
>> >>>> You received this message because you are subscribed to the Google
>> >>>> Groups "Clojure" group.
>> >>>> To post to this group, send email to clojure@googlegroups.com
>> >>>> Note that posts from new members are moderated - please be patient
>> with
>> >>>> your first post.
>> >>>> To unsubscribe from this group, send email to
>> >>>> clojure+unsubscr...@googlegroups.com
>> >>>> For more options, visit this group at
>> >>>> http://groups.google.com/group/clojure?hl=en
>> >>>> ---
>> >>>> You received this message because you are subscribed to the Google
>> >>>> Groups "Clojure" group.
>> >>>> To unsubscribe from this group and stop receiving emails from it, send
>> >>>> an email to clojure+unsubscr...@googlegroups.com.
>> >>>> For more options, visit https://groups.google.com/d/optout.
>> >>>>
>> >>>
>> >>>  --
>> >>> You received this message because you are subscribed to the Google
>> >>> Groups "Clojure" group.
>> >>> To post to this group, send email to clojure@googlegroups.com
>> >>> Note that posts from new members are moderated - please be patient with
>> >>> your first post.
>> >>> To unsubscribe from this group, send email to
>> >>> clojure+unsubscr...@googlegroups.com
>> >>> For more options, visit this group at
>> >>> http://groups.google.com/group/clojure?hl=en
>> >>> ---
>> >>> You received this message because you are subscribed to the Google
>> Groups
>> >>> "Clojure" group.
>> >>> To unsubscribe from this group and stop receiving emails from it, send
>> an
>> >>> email to clojure+unsubscr...@googlegroups.com.
>> >>> For more options, visit https://groups.google.com/d/optout.
>> >>>
>> >>
>> >>  --
>> >> You received this message because you are subscribed to the Google
>> >> Groups "Clojure" group.
>> >> To post to this group, send email to clojure@googlegroups.com
>> >> Note that posts from new members are moderated - please be patient with
>> >> your first post.
>> >> To unsubscribe from this group, send email to
>> >> clojure+unsubscr...@googlegroups.com
>> >> For more options, visit this group at
>> >> http://groups.google.com/group/clojure?hl=en
>> >> ---
>> >> You received this message because you are subscribed to the Google
>> Groups
>> >> "Clojure" group.
>> >> To unsubscribe from this group and stop receiving emails from it, send
>> an
>> >> email to clojure+unsubscr...@googlegroups.com.
>> >> For more options, visit https://groups.google.com/d/optout.
>> >>
>>
>> --
>> Phillip Lord,                           Phone: +44 (0) 191 222 7827
>> Lecturer in Bioinformatics,             Email:
>> phillip.l...@newcastle.ac.uk
>> School of Computing Science,
>> http://homepages.cs.ncl.ac.uk/phillip.lord
>> Room 914 Claremont Tower,               skype: russet_apples
>> Newcastle University,                   twitter: phillord
>> NE1 7RU
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>

-- 
Phillip Lord,                           Phone: +44 (0) 191 222 7827
Lecturer in Bioinformatics,             Email: phillip.l...@newcastle.ac.uk
School of Computing Science,            
http://homepages.cs.ncl.ac.uk/phillip.lord
Room 914 Claremont Tower,               skype: russet_apples
Newcastle University,                   twitter: phillord
NE1 7RU                                 

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to