I'd rather see something at the beginning or at the end of the statement. like ^:toss (def ...)
or (def ...) ;; On Tue, May 15, 2012 at 6:50 AM, Michał Marczyk <michal.marc...@gmail.com> wrote: > Workaround: > > (do (def foo (build-something-enormous)) nil) > > As for the reason for this behaviour -- probably non other than it's > just the easiest thing for def in ClojureScript to do; "it" being to > inherit the return value from the JavaScript assignment def compiles > to. > > Sticking a void () around the assignment (so that (def foo ...) would > do what (js* "void (~{})" (def foo ...)) does currently) would be a > straightforward way of suppressing the returned value. I can put > together the (trivial) patch to do that in :statement context in the > presence of a flag if this seems useful. The REPL could just set this > flag by default. > > Sincerely, > Michał > > > On 15 May 2012 06:14, kovas boguta <kovas.bog...@gmail.com> wrote: >> I think this is a pretty valid feature request. >> >> The main question is, can this be done without having vars in clojurescript. >> >> One way to do it is to surpress output somehow, under certain conditions. >> >> Either as a token at the end of a repl input, or in the semantics of def >> itself. >> >> I don't have an ideal specific solution here, but I've noticed this >> problem as well and found it pretty annoying. >> >> There should be a way to solve it that is a reasonable compromise. >> >> >> >> On Mon, May 14, 2012 at 11:13 PM, Mark Engelberg >> <mark.engelb...@gmail.com> wrote: >>> On Mon, May 14, 2012 at 4:41 PM, David Nolen <dnolen.li...@gmail.com> wrote: >>>> >>>> On Mon, May 14, 2012 at 7:27 PM, Mark Engelberg <mark.engelb...@gmail.com> >>>> wrote: >>>>> >>>>> (def tree (function-that-produces-an-enormous-tree 2)) >>>> >>>> >>>> Isn't doing this at the top level bad form? >>> >>> >>> The purpose of a REPL is for interactive experimentation. I want to give >>> names to the things I'm building so I can play with them in the REPL. >>> Nothing bad form about that. >>> >>>> >>>> Also I don't see how this isn't solved by modifying some habits. >>>> >>>> (defn test-tree [] (function-that-produces-an-enormous-tree 2)) >>>> (time (test-tree)) >>>> >>> >>> time prints out the value that is computed. The above example would suffer >>> the same problem of printing out the tree at the REPL. You could do >>> something like (time (do (test-tree) nil)) to suppress printing, but if you >>> want to do further interactive manipulations to the tree, you'd end up >>> recomputing it. So then, you get into workarounds involving delay. It >>> starts to get ugly, I think. >>> >>> Clojure's ability to give names to things without printing the values is a >>> feature I use every day in my interactive explorations. >>> >>> >>> -- >>> 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 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 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 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