OK, if I follow your posts correctly you now agree with me that this is 
unpleasant behavior :-)

On Saturday, February 9, 2013 1:35:48 PM UTC-6, AtKaaZ wrote:
>
> So, I basically thought that this is what's happening in your case also 
> (but it's not!):
> => (map println '(1 2 3))
> (1
> 2
> nil 3
> nil nil)
> => (= '(nil nil nil) (map println '(1 2 3)))
> 1
> 2
> 3
> true
>
> ;so your case is different due to pr-str and pr 
>
> => (def k (pr-str (for [x (range 5)] 
>                                 (do (pr x) 
>                                      x))))
> #'user/k
> => k
> "(012340 1 2 3 4)"
> => (= "(012340 1 2 3 4)" k)
> true
>
> Sorry for the noise, indeed it seems like pr-str is just redirecting *out* 
> until done using with-out-str.
> This is certainly much more severe that I thought initially.
>
> => (def k (pr-str (for [x (range 5)]
>                                    (do (pr x)
>                                      (println "nothing")
>                                         x))))
> #'user/k
> => k
> "(0nothing\r\n1nothing\r\n2nothing\r\n3nothing\r\n4nothing\r\n0 1 2 3 4)"
> => (= "(0nothing\r\n1nothing\r\n2nothing\r\n3nothing\r\n4nothing\r\n0 1 2 
> 3 4)" k)
> true
>
> This is so bad :)
>
>
> On Sat, Feb 9, 2013 at 8:26 PM, AtKaaZ <atk...@gmail.com <javascript:>>wrote:
>
>>
>>
>>
>> On Sat, Feb 9, 2013 at 8:25 PM, AtKaaZ <atk...@gmail.com <javascript:>>wrote:
>>
>>>
>>>
>>>
>>> On Sat, Feb 9, 2013 at 8:22 PM, AtKaaZ <atk...@gmail.com 
>>> <javascript:>>wrote:
>>>
>>>> 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 
>>>> <javascript:>>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
>>>>
>>> OOps, I pasted the wrong one here (from the "vec" form)
>>> But looks like I was wrong, and you were correct!!
>>>
>>> => (def k (pr-str (for [x (range 5)] 
>>>                                 (do ;(pr x) 
>>>                                      x))))
>>> #'user/k
>>>  => k
>>> "(0 1 2 3 4)"
>>> => (= "(0 1 2 3 4)" k)
>>> true
>>>
>>> => (def k (pr-str (for [x (range 5)] 
>>>                                 (do (pr x) 
>>>                                      x))))
>>> #'user/k
>>> => (= "(0 1 2 3 4)" k)
>>> false
>>>
>> => (= "(012340 1 2 3 4)" k)
>> true
>>
>> so it's not exactly like the example that I've given... I'll have to 
>> investigate more 
>>
>>>  
>>>  
>>>>  
>>>>
>>>>
>>>>
>>>>
>>>> On Sat, Feb 9, 2013 at 8:03 PM, Conrad <drc...@gmail.com 
>>>> <javascript:>>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 clo...@googlegroups.com<javascript:>
>>>>> 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 <javascript:>
>>>>> 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+u...@googlegroups.com <javascript:>.
>>>>> 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.
>>>>
>>>>  
>>>
>>>
>>> -- 
>>> 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.


Reply via email to