do you mean that, when the string it outputted  like:
=> (println k)
(012340 1 2 3 4)
nil
=> (prn k)
"(012340 1 2 3 4)"
nil

the side effects of evaluating k being mixed into the output could affect
you (other than just visually in the repl) ? if ie. you redirect *out* to
some file with the purpose of saving and later restoring that?

Well, I don't actually like this myself (ever since I've encountered the
map println example I've given) but I ignored it because people didn't seem
to find it a big deal and nothing I could do about it + it only affected me
in viewing REPL output.


But I'm not sure if it is clear to you what is happening (perhaps I
misunderstand what you're saying), it's only when showing the value of the
string (k in this case) that the text shown is mixed, but the value of k is
accurate, as seen below:
On Sat, Feb 9, 2013 at 7:30 PM, Conrad <drc...@gmail.com> wrote:

> I tested this in the latest 1.5.0-RC6:
>
> => (def k (pr-str (for [x (range 5)]
>                              (do (pr x)
>                                   x))))
> #'user/k
> => k
> "(012340 1 2 3 4)"
>
=> (= "[0 1 2 3 4]" k)
true





On Sat, Feb 9, 2013 at 8:03 PM, Conrad <drc...@gmail.com> wrote:

> I agree when you print to stdout you'd expect lazily evaluated output to
> be mangled in.
>
> However, it would seem more natural to me that if you print something to a
> string it is counter intuitive for incidental writes to stdout to be
> redirected to the string, as well- There is also nothing in the
> documentation that suggests this would happen.
>
> Also, it would be technically relatively easy to change this.
>
> On Saturday, February 9, 2013 12:46:08 PM UTC-6, AtKaaZ wrote:
>
>> here's a simpler example:
>> => (map println '(1 2 3))
>> (1
>> 2
>> nil 3
>> nil nil)
>> => (dorun (map println '(1 2 3)))
>> 1
>> 2
>> 3
>> nil
>>
>>
>>
>> On Sat, Feb 9, 2013 at 7:44 PM, AtKaaZ <atk...@gmail.com> wrote:
>>
>>> actually replacing vec with dorun or doall, would've been a better
>>> example :)
>>>
>>>
>>> On Sat, Feb 9, 2013 at 7:42 PM, AtKaaZ <atk...@gmail.com> wrote:
>>>
>>>> I think it's an illusion from being lazy ?
>>>> => (def k (pr-str (vec (for [x (range 5)]
>>>>                               **  (do (pr x)
>>>>                               **       x)))))
>>>> 01234
>>>> #'datest1.ret/k
>>>> => k
>>>> "[0 1 2 3 4]"
>>>>
>>>>
>>>>
>>>> On Sat, Feb 9, 2013 at 7:30 PM, Conrad <drc...@gmail.com> wrote:
>>>>
>>>>> I tested this in the latest 1.5.0-RC6:
>>>>>
>>>>> => (def k (pr-str (for [x (range 5)]
>>>>>                              (do (pr x)
>>>>>                                   x))))
>>>>> #'user/k
>>>>> => k
>>>>> "(012340 1 2 3 4)"
>>>>>
>>>>> This seems wrong to me... I can see what would be needed to fix it in
>>>>> clojure/core.clj, but it would require creating several additional private
>>>>> functions. Does anyone know if this behavior is intentional?
>>>>>
>>>>> --
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Clojure" group.
>>>>> To post to this group, send email to clo...@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+u...@**googlegroups.com
>>>>>
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/**group/clojure?hl=en<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+u...@**googlegroups.com.
>>>>>
>>>>> For more options, visit 
>>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>>>> .
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Please correct me if I'm wrong or incomplete,
>>>> even if you think I'll subconsciously hate it.
>>>>
>>>>
>>>
>>>
>>> --
>>> Please correct me if I'm wrong or incomplete,
>>> even if you think I'll subconsciously hate it.
>>>
>>>
>>
>>
>> --
>> Please correct me if I'm wrong or incomplete,
>> even if you think I'll subconsciously hate it.
>>
>>   --
> --
> 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/groups/opt_out.
>
>
>



-- 
Please correct me if I'm wrong or incomplete,
even if you think I'll subconsciously hate it.

-- 
-- 
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/groups/opt_out.


Reply via email to