Re: Light table
Cursive's coming along nicely. It's a little difficult for me to judge since I tend to see more of what needs doing than what already works well, but it's very usable now. Plenty of people are using it for daily work with no serious issues. As a data point, the last version was downloaded around 7000 times, and the version I brought out yesterday is on track to be downloaded around 1000 times in the first 24 hours. The biggest pain point is likely to be if you're working on code which is very macro heavy, which means that many of the symbols won't resolve correctly. In general, as I commented in another thread here recently, I firmly believe that it's no longer true that everyone will end up with Emacs, or that they'd be better off doing so. Certainly there's a lot of inertia towards it, but other options are getting much better and are even better for certain use cases (LightTable for CLJS/web work and Cursive/CCW for mixed Clojure/Java projects). On 17 April 2014 13:12, Mark Engelberg mark.engelb...@gmail.com wrote: On Wed, Apr 16, 2014 at 6:01 PM, Colin Fleming colin.mailingl...@gmail.com wrote: Standard disclaimer: I develop Cursive. How's Cursive coming along? The website still says it's only for those who are feeling brave. -- 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.
Re: is there a way I can learn clojure with a lot of exercises
Hi Roelof, I noticed your chat client is in Dutch. On the off chance that you might be in Flanders, I wanted to point out that there is going to be a BeClojure meetup on 2014-04-23 in Antwerp. More details: http://clojuregroup.org/2014/04/11/invitation-beclojure-23-april-2014-antwerpen/ On Wednesday, 16 April 2014, Roelof Wobben rwob...@hotmail.com wrote: Op woensdag 16 april 2014 16:43:09 UTC+2 schreef Charlie Griefer: On Apr 15, 2014, at 11:56 PM, Roelof Wobben rwo...@hotmail.com wrote: I like to try clojure. I have little or none programming background but I know I learn the best by reading a piece of text and then do exercises about it so I can check if I really understand it. What is then the best way to proceed ? I know you said that you want to do exercises, but I have to second the recommendations for Clojure for the Brave and True. Great introduction for somebody who has little to no programming background. http://www. braveclojure.com/ Also as others have said, 4Clojure is exactly what you're asking for (exercises). But I'd start off with Clojure for the Brave and True, and as concepts start to click (or maybe even just before that), start working some of the 4Clojure exercises. -- Charlie Griefer http://charlie.griefer.comhttp://charlie.griefer.com Give light, and the darkness will disappear of itself. -- Desiderius Erasmus Thanks, What I do now is read the braveclojure book and do the exercises from http://iloveponies.github.io/120-hour-epic-sax-marathon/index.html So I read a lot and I can see how things work. Roelof -- 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.
Re: Light table
I've been doing all of my Clojure work in Vim. VimClojure [1] was great, but fireplace [2] has been a game changer for me. It might not look like much, but the REPL really feels tightly integrated into the editor. I actually never touch the REPL directly anymore (except for restarting it from times to times): cpb evaluates the current form (and shows the result at the bottom of the screen), cpp the current top-level form, and c!! replaces the current top-level form with its evaluation right into the editor. There are also other shortcuts to macroexpand, show source, show doc, go to source (including inside required jars), etc. I also get auto-completion with docs and so on. All in all, I feel very productive and very much connected to my code - like I'm actually interacting with it rather than just writing it. The limit between REPL and editor is blurry. I keep meaning to look at Emacs to check what it has that is so much better in terms of integration, but so far I have not found the time. I did try LightTable in the early days and was not very much convinced, but we're talking somewhere around 0.2 here so I guess I'll check it again in the near future. Disclaimer: I was already using Vim before I learned Clojure. I started editing Clojure with a simple tslime-based workflow [3], then moved on to VimClojure and now to fireplace. [1] https://github.com/vim-scripts/VimClojure [2] https://github.com/tpope/vim-fireplace [3] http://www.vim.org/scripts/script.php?script_id=3023 On 17 April 2014 08:06, Colin Fleming colin.mailingl...@gmail.com wrote: Cursive's coming along nicely. It's a little difficult for me to judge since I tend to see more of what needs doing than what already works well, but it's very usable now. Plenty of people are using it for daily work with no serious issues. As a data point, the last version was downloaded around 7000 times, and the version I brought out yesterday is on track to be downloaded around 1000 times in the first 24 hours. The biggest pain point is likely to be if you're working on code which is very macro heavy, which means that many of the symbols won't resolve correctly. In general, as I commented in another thread here recently, I firmly believe that it's no longer true that everyone will end up with Emacs, or that they'd be better off doing so. Certainly there's a lot of inertia towards it, but other options are getting much better and are even better for certain use cases (LightTable for CLJS/web work and Cursive/CCW for mixed Clojure/Java projects). On 17 April 2014 13:12, Mark Engelberg mark.engelb...@gmail.com wrote: On Wed, Apr 16, 2014 at 6:01 PM, Colin Fleming colin.mailingl...@gmail.com wrote: Standard disclaimer: I develop Cursive. How's Cursive coming along? The website still says it's only for those who are feeling brave. -- 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.
boolean problem
Hello, IM working at the Iloveponies github tutorial and Im stuck here, I have to check if x is a nil or false and then the output must be false,\ Otherwise I have to be true. So I tried this : (defn boolean [x] (if (and (nil? x) (false? x)) ) But then I see a very long error message: xception in thread main java.lang.RuntimeException: EOF while reading, starting at line 4, compiling:(i_am_a_horse_in_the_land_of_booleans.clj:30:1) at clojure.lang.Compiler.load(Compiler.java:7071) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:621) at clojure.core$use.doInvoke(core.clj:5507) at clojure.lang.RestFn.invoke(RestFn.java:421) at iloveponies.tests.i_am_a_horse_in_the_land_of_booleans$eval6263$loading__4910__auto6264.invoke(i_am_a_horse_in_the_land_of_booleans.clj:1) at iloveponies.tests.i_am_a_horse_in_the_land_of_booleans$eval6263.invoke(i_am_a_horse_in_the_land_of_booleans.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6608) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:621) at clojure.core$use.doInvoke(core.clj:5507) at clojure.lang.RestFn.invoke(RestFn.java:408) at i_am_a_horse_in_the_land_of_booleans_test$eval6257$loading__4910__auto6258.invoke(i_am_a_horse_in_the_land_of_booleans_test.clj:1) at i_am_a_horse_in_the_land_of_booleans_test$eval6257.invoke(i_am_a_horse_in_the_land_of_booleans_test.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6608) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at clojure.core$require.doInvoke(core.clj:5496) at clojure.lang.RestFn.invoke(RestFn.java:421) at midje.repl$load_facts$fn__6191.invoke(repl.clj:206) at midje.repl$load_facts.doInvoke(repl.clj:192) at clojure.lang.RestFn.invoke(RestFn.java:397) at user$eval6253.invoke(form-init263954278555209649.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6609) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.Compiler.loadFile(Compiler.java:7020) at clojure.main$load_script.invoke(main.clj:294) at clojure.main$init_opt.invoke(main.clj:299) at clojure.main$initialize.invoke(main.clj:327) at clojure.main$null_opt.invoke(main.clj:362) at clojure.main$main.doInvoke(main.clj:440) at
Re: boolean problem
Hello, You miss one parentheses at the end of your expression (defn boolean [x] (if (and (nil? x) (false? x)) )) cheers, stan. On Thursday, April 17, 2014 9:11:13 AM UTC+2, Roelof Wobben wrote: Hello, IM working at the Iloveponies github tutorial and Im stuck here, I have to check if x is a nil or false and then the output must be false,\ Otherwise I have to be true. So I tried this : (defn boolean [x] (if (and (nil? x) (false? x)) ) But then I see a very long error message: xception in thread main java.lang.RuntimeException: EOF while reading, starting at line 4, compiling:(i_am_a_horse_in_the_land_of_booleans.clj:30:1) at clojure.lang.Compiler.load(Compiler.java:7071) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:621) at clojure.core$use.doInvoke(core.clj:5507) at clojure.lang.RestFn.invoke(RestFn.java:421) at iloveponies.tests.i_am_a_horse_in_the_land_of_booleans$eval6263$loading__4910__auto6264.invoke(i_am_a_horse_in_the_land_of_booleans.clj:1) at iloveponies.tests.i_am_a_horse_in_the_land_of_booleans$eval6263.invoke(i_am_a_horse_in_the_land_of_booleans.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6608) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:621) at clojure.core$use.doInvoke(core.clj:5507) at clojure.lang.RestFn.invoke(RestFn.java:408) at i_am_a_horse_in_the_land_of_booleans_test$eval6257$loading__4910__auto6258.invoke(i_am_a_horse_in_the_land_of_booleans_test.clj:1) at i_am_a_horse_in_the_land_of_booleans_test$eval6257.invoke(i_am_a_horse_in_the_land_of_booleans_test.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6608) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at clojure.core$require.doInvoke(core.clj:5496) at clojure.lang.RestFn.invoke(RestFn.java:421) at midje.repl$load_facts$fn__6191.invoke(repl.clj:206) at midje.repl$load_facts.doInvoke(repl.clj:192) at clojure.lang.RestFn.invoke(RestFn.java:397) at user$eval6253.invoke(form-init263954278555209649.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6609) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.Compiler.loadFile(Compiler.java:7020) at
Need HTTP Client not to verify cert on Heroku
The option you need is :insecure? true - although it's worth considering if you'd be better off setting up the certificate chain with the appropriate CA for the service in question (see trust store section in readme) -- 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.
Re: boolean problem
Hi Roelof, I'd recommend using an editor that supports rainbow brackets so you can easily see when your parens are matched. Also, when you get your parens matched you'll find another error in your code, check out the docs for if http://clojuredocs.org/clojure_core/clojure.core/ifto figure that one out. Cheers, James On Thursday, April 17, 2014 9:11:13 AM UTC+2, Roelof Wobben wrote: Hello, IM working at the Iloveponies github tutorial and Im stuck here, I have to check if x is a nil or false and then the output must be false,\ Otherwise I have to be true. So I tried this : (defn boolean [x] (if (and (nil? x) (false? x)) ) But then I see a very long error message: xception in thread main java.lang.RuntimeException: EOF while reading, starting at line 4, compiling:(i_am_a_horse_in_the_land_of_booleans.clj:30:1) at clojure.lang.Compiler.load(Compiler.java:7071) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:621) at clojure.core$use.doInvoke(core.clj:5507) at clojure.lang.RestFn.invoke(RestFn.java:421) at iloveponies.tests.i_am_a_horse_in_the_land_of_booleans$eval6263$loading__4910__auto6264.invoke(i_am_a_horse_in_the_land_of_booleans.clj:1) at iloveponies.tests.i_am_a_horse_in_the_land_of_booleans$eval6263.invoke(i_am_a_horse_in_the_land_of_booleans.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6608) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:621) at clojure.core$use.doInvoke(core.clj:5507) at clojure.lang.RestFn.invoke(RestFn.java:408) at i_am_a_horse_in_the_land_of_booleans_test$eval6257$loading__4910__auto6258.invoke(i_am_a_horse_in_the_land_of_booleans_test.clj:1) at i_am_a_horse_in_the_land_of_booleans_test$eval6257.invoke(i_am_a_horse_in_the_land_of_booleans_test.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at clojure.lang.Compiler.eval(Compiler.java:6608) at clojure.lang.Compiler.load(Compiler.java:7064) at clojure.lang.RT.loadResourceScript(RT.java:370) at clojure.lang.RT.loadResourceScript(RT.java:361) at clojure.lang.RT.load(RT.java:440) at clojure.lang.RT.load(RT.java:411) at clojure.core$load$fn__5018.invoke(core.clj:5530) at clojure.core$load.doInvoke(core.clj:5529) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5336) at clojure.core$load_lib$fn__4967.invoke(core.clj:5375) at clojure.core$load_lib.doInvoke(core.clj:5374) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:619) at clojure.core$load_libs.doInvoke(core.clj:5413) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:619) at clojure.core$require.doInvoke(core.clj:5496) at clojure.lang.RestFn.invoke(RestFn.java:421) at midje.repl$load_facts$fn__6191.invoke(repl.clj:206) at midje.repl$load_facts.doInvoke(repl.clj:192) at clojure.lang.RestFn.invoke(RestFn.java:397) at user$eval6253.invoke(form-init263954278555209649.clj:1) at clojure.lang.Compiler.eval(Compiler.java:6619) at
Re: boolean problem
Stanislas Nanchen stanislas.nanc...@gmail.com writes: You miss one parentheses at the end of your expression (defn boolean [x] (if (and (nil? x) (false? x)) )) And now you have an if without then which will give you another exception. And the test expression is a contradiction, i.e., it's always false. Nothing can be both nil? and false?. I have to check if x is a nil or false and then the output must be false,\ Otherwise I have to be true. Why? nil and false are already falsy, everything else is true. And if you have to interact with java where some method wants some real boolean, then there's already clojure.core/boolean. Bye, Tassilo -- 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.
Re: boolean problem
Op donderdag 17 april 2014 09:34:52 UTC+2 schreef Tassilo Horn: Stanislas Nanchen stanisla...@gmail.com javascript: writes: You miss one parentheses at the end of your expression (defn boolean [x] (if (and (nil? x) (false? x)) )) And now you have an if without then which will give you another exception. And the test expression is a contradiction, i.e., it's always false. Nothing can be both nil? and false?. You are right. Stupid thinking error of me. I have to check if x is a nil or false and then the output must be false,\ Otherwise I have to be true. Why? nil and false are already falsy, everything else is true. And if you have to interact with java where some method wants some real boolean, then there's already clojure.core/boolean. In this exercise you are not allowed to use boolean. Roelof Bye, Tassilo -- 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.
Re: boolean problem
Roelof Wobben rwob...@hotmail.com writes: Hi Roelof, I have to check if x is a nil or false and then the output must be false,\ Otherwise I have to be true. Why? nil and false are already falsy, everything else is true. And if you have to interact with java where some method wants some real boolean, then there's already clojure.core/boolean. In this exercise you are not allowed to use boolean. Ah, ok, then it makes sense. :-) Bye, Tassilo -- 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.
Re: Light table
I have been using Eclipse for the last 10 years roughly. Having a polyglot project made this choice obvious. Now that our code base is in Clojure at 99%, I do not feel tempted by emacs. May give a try with LightTable however. I used to do most of my editing with emacs in the 1980s, using the first version written in Teco on tops-20. In these times it was a vast improvement on line by line editing. But I can't get back to it, the keyboard shortcuts do not seem to fit in my brain anymore. Years of WYSIWYG probably shrank this brain function to a bare minimum :) Luc P. On Apr 16, 2014, at 10:48 PM, Mikera mike.r.anderson...@gmail.com wrote: On Thursday, 17 April 2014 03:57:56 UTC+8, Mike Haney wrote: The conventional wisdom seems to be that you will end up learning emacs eventually if you spend any amount of time doing clojure or lisp, so you might as well learn it from the start. That is definitely the approach taken in the braveclojure book, and he may be right, but I have no regrets starting with lighttable. As a counter-example to the conventional wisdom, I have never really used Emacs and I've being doing Clojure successfully for around 4 years now. I'm sure Emacs is great for those who have taken the time to master it, but it certainly isn't necessary to be productive in Clojure. I personally use Counterclockwise - this is mainly because I also do a lot of Java work in Eclipse and it makes the polyglot integration much easier if you aren't switching tools all the time. I'm also quite excited about the potential of things like Session or Gorilla-REPL for exploratory / data science work. I like the way that the Clojure ecosystem is developing a lot of innovative, plug-able components and tools that enable different development styles. A different kind of counter-example: I've used emacs a fair bit in my decades of Lisping and now years of Clojuring, but I now too use Counterclockwise. IMHO emacs has tremendous and beautiful power but unnecessarily awful usability characteristics. I hope that some day someone will develop a Clojure environment with the former but without the later, possibly driven by emacs under the hood. -Lee -- 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. -- Luc Prefontainelprefonta...@softaddicts.ca sent by ibisMail! -- 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.
Re: Light table
I recently moved from Emacs to Light Table for Clojurescript and I like working with it. I created a tutorial that outlines my Clojurescript workflow using Light Table: github.com/wvdlaan/todomvc For my work on the JVM I still use Emacs because old habits die hard. But I expect to move to Light Table at some point. On Wednesday, April 16, 2014 9:42:40 PM UTC+2, Roelof Wobben wrote: Has anyone tried Light table as a IDE instead of Emacs ? Roelof -- 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.
Re: Why I'm giving Clojure a try
Il giorno mercoledì 16 aprile 2014 18:06:57 UTC+2, Massimiliano Tomassoli ha scritto: I can see the value of having such a regular syntax (or absence of it) but it takes a while to get comfortable with it. I’ve personally found that after a while they don’t bother you anymore :) [image: LISP Parenthesis] Having said that, an editor that is LISP-aware and gives you structural editing (like Emacs or LightTable, which Paredit support is less advanced right now) is a great help. -- 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.
Re: boolean problem
On Apr 17, 2014, at 02:34 , Tassilo Horn t...@gnu.org wrote: And now you have an if without then which will give you another exception. Not true. It's more common to use 'when', but single-branch ifs are perfectly fine. -- 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.
Re: Why I'm giving Clojure a try
On Thursday, April 17, 2014 2:17:13 AM UTC+2, Zhemin Lin wrote: Hi Massimiliano, You may also want to give ClojureScript or LiveScript (which compiles to JavaScript and run on node.js) a try! LiveScript is quite functional and the callback hell is somewhat eased. Well, ClojureScript is the main reason why I'm studying Clojure right now. LiveScript looks interesting, but I've made up my mind: I'll learn my first Lisp dialect! One of the things I miss from Scala and Haskell, and wish were present in Clojure, is pattern matching. I'll have a look at core.match hoping it's mature enough. -- 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.
Re: Light table
Thanks all. Unfortunally I cannot get Lighttable work. I work with Nixos where all the packages are stored in /var/store/nixos/hash instead of the way linux does these things. So untill I find out how to compile it from source no Light Table for me. Roelof Op donderdag 17 april 2014 10:34:58 UTC+2 schreef Walter van der Laan: I recently moved from Emacs to Light Table for Clojurescript and I like working with it. I created a tutorial that outlines my Clojurescript workflow using Light Table: github.com/wvdlaan/todomvc For my work on the JVM I still use Emacs because old habits die hard. But I expect to move to Light Table at some point. On Wednesday, April 16, 2014 9:42:40 PM UTC+2, Roelof Wobben wrote: Has anyone tried Light table as a IDE instead of Emacs ? Roelof -- 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.
Re: [ANN] Sente - Clojure(Script) + core.async + WebSockets/Ajax
For those that might be following, have pushed `v0.10.0` so long: https://github.com/ptaoussanis/sente/releases/tag/v0.10.0 The server-side `make-channel-socket!` fn's return value now includes a `:connected-uids` atom key. You can deref that to get a realtime snapshot of all connected user-ids, or you can attach a watch to get notified of any changes as they happen. This makes something like a who's online now trivial, and is a good foundation for higher-order stuff like subscriptions, etc. Also updated the reference example to show how one would use this for a simple broadcast. -- 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.
Re: boolean problem
Op donderdag 17 april 2014 13:26:35 UTC+2 schreef Michael Gardner: On Apr 17, 2014, at 02:34 , Tassilo Horn ts...@gnu.org javascript: wrote: And now you have an if without then which will give you another exception. Yep, but that one I solved already. Not true. It's more common to use 'when', but single-branch ifs are perfectly fine. -- 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.
Re: Why I'm giving Clojure a try
Hi Massimiliano! I read you at Scala list. Short comment: there is a clojurescript googlegroup, too. Angel Java Lopez @ajlopez On Thu, Apr 17, 2014 at 8:31 AM, Massimiliano Tomassoli kiuhn...@gmail.comwrote: On Thursday, April 17, 2014 2:17:13 AM UTC+2, Zhemin Lin wrote: Hi Massimiliano, You may also want to give ClojureScript or LiveScript (which compiles to JavaScript and run on node.js) a try! LiveScript is quite functional and the callback hell is somewhat eased. Well, ClojureScript is the main reason why I'm studying Clojure right now. LiveScript looks interesting, but I've made up my mind: I'll learn my first Lisp dialect! One of the things I miss from Scala and Haskell, and wish were present in Clojure, is pattern matching. I'll have a look at core.match hoping it's mature enough. -- 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.
Re: Why I'm giving Clojure a try
Thanks for that image, Manuel Paccagnella. I'd never seen it. However, the top image leaves out most of the parentheses, and they're part of the beauty, for me--along with the indentation. (I had a little bit of trouble Googling up a stable URL for the image, but finally found this, for anyone who wants it: http://img264.imageshack.us/img264/1397/lispnd7.png) -- 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.
Re: Why I'm giving Clojure a try
On Thursday, April 17, 2014 2:19:48 PM UTC+2, ajlopez wrote: Hi Massimiliano! I read you at Scala list. Hi, I remember you :) Short comment: there is a clojurescript googlegroup, too. Thanks, I didn't know that! -- 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.
New namespace per session in nREPL
Hello, I would like to let multiple users use single nrepl server. One problem I noticed is that after connecting you are by default put in 'user' namespace. I am looking for a way to configure nrepl server in a way it will assign new namespace (let's say random-generated) for each session. Are there any existing solutions for that? So far I (after browsing nrepl source) I think I would have to write my own session middleware, which would handle creation of new namespaces per session. Is this the correct approach? Cheers, Arek -- 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.
Re: boolean problem
Michael Gardner gardne...@gmail.com writes: And now you have an if without then which will give you another exception. Not true. It's more common to use 'when', but single-branch ifs are perfectly fine. Yes, but that was a zero-branch if, and that's not ok. Bye, Tassilo -- 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.
Re: boolean problem
On Apr 17, 2014, at 07:38 , Tassilo Horn t...@gnu.org wrote: Michael Gardner gardne...@gmail.com writes: And now you have an if without then which will give you another exception. Not true. It's more common to use 'when', but single-branch ifs are perfectly fine. Yes, but that was a zero-branch if, and that's not ok. Oh duh, my bad. I read that as if without else for some reason. Sorry for the noise. -- 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.
[ANN] 3T Software Labs MongoDB tools for CongoMongo and Monger users.
Hello fair Clojarians! I’d like to announce the availability of 3T Software Labs MongoDB tools to the CongoMongo and Monger users (and any other MongoDB users) on this list. To forward-thinking Clojarians and MongoDB users alike, I’d like to extend a special 60-day trial of all the apps in our suite at http://3tsoftwarelabs.com/evaluation-edition using the code ‘CLJR’. My apologies for the spam if you’re not a CongoMongo / Monger / MongoDB user. If you are, I hope you enjoy our tools and find them useful. Like many of the pioneering Clojure projects described on this list, we’ve just started our adventure, and would love to hear any feedback you have. Thanks a lot, Graham 3T Software Labs -- 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.
Re: Thoughts on bags?
While searching for MultiSet or Bag resources, I found this implementation by Achim Passen at: A simple multiset/bag implementation for Clojurehttps://github.com/achim/multiset . However, I found I could meet my needs by adding functions to treat vectors, or other collection types, as unordered. For the hash, from Clojure Data Structureshttp://clojure.org/data_structures#hash : (defn hash-unordered [collection] (- (reduce unchecked-add-int 0 (map hash collection)) (mix-collection-hash (count collection For equality: (defn equals-unordered [coll-a coll-b] Treat collections as unordered for 1st level of comparison. (or (identical? coll-a coll-b) (and (empty? coll-a) (empty? coll-b)) (let [set-a (set coll-a) set-b (set coll-b)] (and (= set-a set-b) (loop [[item items] (seq set-a)] (let [finder #(= item %) found-a (filter finder coll-a) found-b (filter finder coll-b)] (if (not= (count found-a) (count found-b)) false (if (empty? items) true (recur items) Neither Achim's deftype, nor the above, is likely as efficient as a core collection MultiSet. In the meantime, I hope these observations are useful. Greg -- 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.
Re: The Cons in iterate's return value
On Wednesday, April 16, 2014 10:35:14 PM UTC-5, Mars0i wrote: But then should realized? be able to deal with a Cons containing a LazySeq? (Is this an issue worthy of JIRA? I've never submitted there, and am not sure I know enough to do so. Willing to try to figure it out.) No, realized? works as intended on a single object. If you want to know if there is an unrealized portion remaining of a sequence, just roll your own function to step through it, being careful not to force realization of unrealized portions while doing so. Untested example: (defn seq-realized? Returns false if there is an unrealized tail in the sequence, otherwise true. [s] (if (instance? clojure.lang.IPending s) (if (realized? s) (if (seq s) (recur (rest s)) true) false) (if (seq s) (recur (rest s)) true))) -- 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.
Style question (predicates)
The library coding standards[1] say: * Use '?' suffix for predicates. - N.B. - predicates return booleans and the community Clojure style guide[2] says: * The names of predicate methods (methods that return a boolean value) should end in a question mark. (i.e.even?). Both of these imply that if you have a function that returns a boolean (and that is intended for use as a predicate), it should be named to end in '?'. Fair enough. My question is about the reverse implication: * Should a function whose name ends in '?' return a (strict) boolean value? Looking at the docstrings of a random selection of functions found by (apropos ?), they all seem to return specifically true or false. I did not do an exhaustive check. Is the intent that foo? implies a result of true or false - or could foo? return any truthy / falsey value (and therefore any Clojure value). Concrete example that spurred this discussion from some code at work: (defn is-nsf-code? Given an error code, return truthy if it is NSF. [code] (#{BE1 BE2} code)) Clearly the result here could be nil or a string but it's definitely meant to be used as a predicate. Similarly: (defn nsf? Given the result of an SBW sale, return true if it failed with NSF. [result] (and (= failure (:result result)) (some is-nsf-code? (:errors result Again, the result could be false or nil or a string but is meant to be used as a predicate. As an aside, for core.typed, we annotate the first as [String - Boolean] with ^:no-check so it type checks as a true/false predicate and then we annotate the second as [SBWResult - (Nilable Boolean)] and that's all fine... but is it good style? [1] http://dev.clojure.org/display/community/Library+Coding+Standards [2] https://github.com/bbatsov/clojure-style-guide#naming Sean Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) signature.asc Description: Message signed with OpenPGP using GPGMail
Re: is there a way I can learn clojure with a lot of exercises
Also you can check http://readwrite.com/2011/07/01/free-e-books-on-clojure#awesm=~oBIfFVbGUOK34e On Thu, Apr 17, 2014 at 2:33 AM, Gary Verhaegen gary.verhae...@gmail.comwrote: Hi Roelof, I noticed your chat client is in Dutch. On the off chance that you might be in Flanders, I wanted to point out that there is going to be a BeClojure meetup on 2014-04-23 in Antwerp. More details: http://clojuregroup.org/2014/04/11/invitation-beclojure-23-april-2014-antwerpen/ On Wednesday, 16 April 2014, Roelof Wobben rwob...@hotmail.com wrote: Op woensdag 16 april 2014 16:43:09 UTC+2 schreef Charlie Griefer: On Apr 15, 2014, at 11:56 PM, Roelof Wobben rwo...@hotmail.com wrote: I like to try clojure. I have little or none programming background but I know I learn the best by reading a piece of text and then do exercises about it so I can check if I really understand it. What is then the best way to proceed ? I know you said that you want to do exercises, but I have to second the recommendations for Clojure for the Brave and True. Great introduction for somebody who has little to no programming background. http://www. braveclojure.com/ Also as others have said, 4Clojure is exactly what you're asking for (exercises). But I'd start off with Clojure for the Brave and True, and as concepts start to click (or maybe even just before that), start working some of the 4Clojure exercises. -- Charlie Griefer http://charlie.griefer.comhttp://charlie.griefer.com Give light, and the darkness will disappear of itself. -- Desiderius Erasmus Thanks, What I do now is read the braveclojure book and do the exercises from http://iloveponies.github.io/120-hour-epic-sax-marathon/index.html So I read a lot and I can see how things work. Roelof -- 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.
Clojure source releases issue for Maven Central
Current builds of the Clojure sources jar (clojure-1.6.0-sources.jar, clojure-1.5.1-sources.jar, etc) available from the Maven Central releases repository contain the errant versions.properties file noted in issue CLJ-1161 [1] . The fix for that issue can be seen in the Central repo labelled clojure-1239 (staging?), but not in releases: OK: clojure-1239 001918a4c1e544a66d4bc6c84429694d clojure-1.6.0-sources.jar [2] Bad: releases 1c03eec13fbd86083230c3e97ea5bab7 clojure-1.6.0-sources.jar [3] Could someone who is more familiar with the Clojure build/upload process shed some light on this? Cheers, Jeff [1] http://dev.clojure.org/jira/browse/CLJ-1161 [2] https://oss.sonatype.org/index.html#view-repositories;orgclojure-1239~browsestorage~/org/clojure/clojure/1.6.0/clojure-1.6.0-sources.jar [3] https://oss.sonatype.org/index.html#view-repositories;releases~browsestorage~/org/clojure/clojure/1.6.0/clojure-1.6.0-sources.jar -- 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.
Re: Light table
It seems that Nightcode works What do you experts think of this IDE. Roelof Op donderdag 17 april 2014 13:39:31 UTC+2 schreef Roelof Wobben: Thanks all. Unfortunally I cannot get Lighttable work. I work with Nixos where all the packages are stored in /var/store/nixos/hash instead of the way linux does these things. So untill I find out how to compile it from source no Light Table for me. Roelof Op donderdag 17 april 2014 10:34:58 UTC+2 schreef Walter van der Laan: I recently moved from Emacs to Light Table for Clojurescript and I like working with it. I created a tutorial that outlines my Clojurescript workflow using Light Table: github.com/wvdlaan/todomvc For my work on the JVM I still use Emacs because old habits die hard. But I expect to move to Light Table at some point. On Wednesday, April 16, 2014 9:42:40 PM UTC+2, Roelof Wobben wrote: Has anyone tried Light table as a IDE instead of Emacs ? Roelof -- 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.
Re: Style question (predicates)
My 2p - I interpret the contract as being boolean. Truthy values are 'polymorphically' equivalent*1 so sure. The concern would be people relying on the implementation and treating the values as none-truthy (i.e. in your example relying on the fact it is a string being returned, so (= someString (is-nsf-code? someString))) I should reduce it to 1p really as I am only contributing in an abstract design sense, not in the specifics of the coding standards you mentioned. *1 If this doesn't hold (i.e. caller depends upon receiving a java.lang.Boolean or associated primitive) then I think the caller has bigger problems. On Thursday, April 17, 2014 5:33:42 PM UTC+1, Sean Corfield wrote: The library coding standards[1] say: * Use '?' suffix for predicates. - N.B. - predicates return booleans and the community Clojure style guide[2] says: * The names of predicate methods (methods that return a boolean value) should end in a question mark. (i.e.even?). Both of these imply that if you have a function that returns a boolean (and that is intended for use as a predicate), it should be named to end in '?'. Fair enough. My question is about the reverse implication: * Should a function whose name ends in '?' return a (strict) boolean value? Looking at the docstrings of a random selection of functions found by (apropos ?), they all seem to return specifically true or false. I did not do an exhaustive check. Is the intent that foo? implies a result of true or false - or could foo? return any truthy / falsey value (and therefore any Clojure value). Concrete example that spurred this discussion from some code at work: (defn is-nsf-code? Given an error code, return truthy if it is NSF. [code] (#{BE1 BE2} code)) Clearly the result here could be nil or a string but it's definitely meant to be used as a predicate. Similarly: (defn nsf? Given the result of an SBW sale, return true if it failed with NSF. [result] (and (= failure (:result result)) (some is-nsf-code? (:errors result Again, the result could be false or nil or a string but is meant to be used as a predicate. As an aside, for core.typed, we annotate the first as [String - Boolean] with ^:no-check so it type checks as a true/false predicate and then we annotate the second as [SBWResult - (Nilable Boolean)] and that's all fine... but is it good style? [1] http://dev.clojure.org/display/community/Library+Coding+Standards [2] https://github.com/bbatsov/clojure-style-guide#naming Sean Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- 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.
Re: New namespace per session in nREPL
Since they can move into any namespace they want and they're all sharing the same running JVM context, I'm not sure what separate namespaces buys... Can you elaborate on your use case? Sean On Apr 17, 2014, at 5:35 AM, Arkadiusz Komarzewski akomarzew...@gmail.com wrote: I would like to let multiple users use single nrepl server. One problem I noticed is that after connecting you are by default put in 'user' namespace. I am looking for a way to configure nrepl server in a way it will assign new namespace (let's say random-generated) for each session. Are there any existing solutions for that? So far I (after browsing nrepl source) I think I would have to write my own session middleware, which would handle creation of new namespaces per session. Is this the correct approach? signature.asc Description: Message signed with OpenPGP using GPGMail
Re: Clojure Office Hours
Hey, the schedule's full! :\ On Wednesday, April 16, 2014 2:57:49 AM UTC+1, Marcus Blankenship wrote: Leif, thanks for the great session today. Not only did I get a jump start on my next 4Clojure problems, but I learned some emacs as well! Very enjoyable, and I look forward to next week’s session. THANK YOU! All, if you’re trying to get a jumpstart on Clojure, I highly recommend Leif’s office hours. -Marcus On Apr 15, 2014, at 6:50 PM, Leif leif.p...@gmail.com javascript: wrote: @Jakub: Thanks for your kind words. I'm definitely no industry hero, but I hope Clojure devs of all levels start having more pair programming fun. @Tim: Clojurescript UI programming being *way* out of my comfort zone, I learned quite a lot from you yesterday. So thank *you*. @Everyone: To clarify / reiterate: You do *not* need a plan, a project, or a specific problem. If you want to work through Project Euler, 4clojure, clojure-koans, the ClojureBridge materials, some other clojure tutorial, or just play it by ear, I am happy to try it out. --Leif On Tuesday, April 15, 2014 8:00:17 AM UTC-4, frye wrote: I just came from an office hours session, yesterday with Leif. This is good stuff guys, and a great way to learn and meet with other developers. Highly recommended. Thanks Leif Tim Washington Interruptsoftware.com http://interruptsoftware.com/ On Tue, Apr 15, 2014 at 5:12 AM, Jakub Holy jakub...@iterate.no wrote: Hi Leif, This is a great activity, thank you for contributing to the community this way! Do not be surprise and discouraged by the fact that the interest seems low. I have a similar experience - in my company we can consult with an industry hero yet people use the opportunity seldom, presumably because of multiple factors: they (wrongly) don't feel that they do not have something important/interesting enough to bother him, they are little scared of talking to and exposing themselves and their work to this experienced guy, and might find it difficult to explain their challenge to an outsider and get an advice within the limited time scope. On the other hand, those who dare to use the opportunity benefit from it greatly. Good luck, Jakub On Friday, April 11, 2014 4:13:18 AM UTC+2, Leif wrote: Hmm... less interest than I'd expected, given recent posts. Maybe I should rename the thread to Free Clojure Consulting / Tutoring. Tht's not spammy. FYI, all bookings are automatically confirmed, so don't fret if I don't instantly respond. @Tim: Sounds good! Of course, now I'll have to take some time this weekend and try to actually understand Om. :) (or maybe ?o_0? ) --Leif On Thursday, April 10, 2014 9:56:37 AM UTC-4, frye wrote: Sounds great. I just sent a request. Tim Washington Interruptsoftware.com http://interruptsoftware.com/ On Thu, Apr 10, 2014 at 9:43 AM, Colin Fleming colin.ma...@gmail.comwrote: Hi Leif, This sounds like a very interesting project, please report back and let us know how it went! I'd be very interested to know. Cheers, Colin On 11 April 2014 00:53, Leif leif.p...@gmail.com wrote: Hi, everybody. Inspired by the SF Bay Area clojure group, ClojureBridge, and the great talks on community education from Clojure/West on youtube, I've decided to try holding my own personal Clojure office hours (online). I am personally of the opinion that face-to-face interaction is superior, so you may want to get your local user group to follow the Bay Area's lead. But if you don't agree, or you don't live near such a user group, then read on. Borrowed from the Bay Area's posting: This is a [2-person] meetup for anyone who is working on a Clojure project and wants to talk over their code or approach with an experienced Clojure developer. Projects of all levels and complexity are welcome, anyone just getting started in Clojure is encouraged to come in and talk through their first Euler or 4Clojure problems. Disclaimer: This community being what it is, there may be projects of too high a complexity for me, but I'll give it a shot. I'm going to try a test run of this for two weeks, and then I'll have to see what state I'm in (mentally and geographically). If interested, you can book at this link: https://leifpoorman.youcanbook.me/ Note: all the times are evening, US Eastern. That pretty much limits it to the western hemisphere and any east asian friends that want to do some morning hacking. Eastern hemisphere friends, make noise on this thread, and maybe some brave European/Asian clojure developer will try something similar. Cheers, Leif -- 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
project docs
Is there a standard workflow, lein plugin, or such, for building/serving a project's README.md, doc/*.md, etc.? During development, I mean, to preview the docs while working on them. -- 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.
Re: project docs
Hi. Personally I don't know any standard way to document clojure libraries, but if you want generic documentation tool, asciidoc works very well. Examples: http://niwibe.github.io/buddy/ http://niwibe.github.io/django-pgjson/ Greetings. Andrey 2014-04-17 20:18 GMT+02:00 Brian Craft craft.br...@gmail.com: Is there a standard workflow, lein plugin, or such, for building/serving a project's README.md, doc/*.md, etc.? During development, I mean, to preview the docs while working on them. -- 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. -- Andrey Antukh - Андрей Антух - andrei.anto...@kaleidos.net / n...@niwi.be http://www.niwi.be http://www.niwi.be/page/about/ https://github.com/niwibe -- 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.
Re: Style question (predicates)
In the Common Lisp world it's common for predicates to return a useful value instead of T, when applicable. It seems possible the same principle could apply to clojure. From CLtL2 http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node69.html: Often a predicate will return nil if it ``fails'' and some useful value if it ``succeeds''; such a function can be used not only as a test but also for the useful value provided in case of success. An example is memberhttp://clhs.lisp.se/Body/f_mem_m.htm . On Thu, Apr 17, 2014 at 10:20 AM, Colin Yates colin.ya...@gmail.com wrote: My 2p - I interpret the contract as being boolean. Truthy values are 'polymorphically' equivalent*1 so sure. The concern would be people relying on the implementation and treating the values as none-truthy (i.e. in your example relying on the fact it is a string being returned, so (= someString (is-nsf-code? someString))) I should reduce it to 1p really as I am only contributing in an abstract design sense, not in the specifics of the coding standards you mentioned. *1 If this doesn't hold (i.e. caller depends upon receiving a java.lang.Boolean or associated primitive) then I think the caller has bigger problems. On Thursday, April 17, 2014 5:33:42 PM UTC+1, Sean Corfield wrote: The library coding standards[1] say: * Use '?' suffix for predicates. - N.B. - predicates return booleans and the community Clojure style guide[2] says: * The names of predicate methods (methods that return a boolean value) should end in a question mark. (i.e.even?). Both of these imply that if you have a function that returns a boolean (and that is intended for use as a predicate), it should be named to end in '?'. Fair enough. My question is about the reverse implication: * Should a function whose name ends in '?' return a (strict) boolean value? Looking at the docstrings of a random selection of functions found by (apropos ?), they all seem to return specifically true or false. I did not do an exhaustive check. Is the intent that foo? implies a result of true or false - or could foo? return any truthy / falsey value (and therefore any Clojure value). Concrete example that spurred this discussion from some code at work: (defn is-nsf-code? Given an error code, return truthy if it is NSF. [code] (#{BE1 BE2} code)) Clearly the result here could be nil or a string but it's definitely meant to be used as a predicate. Similarly: (defn nsf? Given the result of an SBW sale, return true if it failed with NSF. [result] (and (= failure (:result result)) (some is-nsf-code? (:errors result Again, the result could be false or nil or a string but is meant to be used as a predicate. As an aside, for core.typed, we annotate the first as [String - Boolean] with ^:no-check so it type checks as a true/false predicate and then we annotate the second as [SBWResult - (Nilable Boolean)] and that's all fine... but is it good style? [1] http://dev.clojure.org/display/community/Library+Coding+Standards [2] https://github.com/bbatsov/clojure-style-guide#naming Sean Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- 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.
Re: project docs
If you just want to preview the docs, Emacs has a markdown-mode - http://jblevins.org/projects/markdown-mode/. I can type C-c C-c p when editing my README.md, and a properly formatted version comes up in Firefox. On 17 April 2014 19:31, Andrey Antukh n...@niwi.be wrote: Hi. Personally I don't know any standard way to document clojure libraries, but if you want generic documentation tool, asciidoc works very well. Examples: http://niwibe.github.io/buddy/ http://niwibe.github.io/django-pgjson/ Greetings. Andrey 2014-04-17 20:18 GMT+02:00 Brian Craft craft.br...@gmail.com: Is there a standard workflow, lein plugin, or such, for building/serving a project's README.md, doc/*.md, etc.? During development, I mean, to preview the docs while working on them. -- 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. -- Andrey Antukh - Андрей Антух - andrei.anto...@kaleidos.net / n...@niwi.be http://www.niwi.be https://github.com/niwibe -- 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. -- Robert K. Day robert@merton.oxon.org -- 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.
Re: project docs
LightTable has a plugin for live Markdown rendering which I find very useful. So useful in fact that I created a plugin for live Textile rendering based on it :) Sean On Apr 17, 2014, at 11:18 AM, Brian Craft craft.br...@gmail.com wrote: Is there a standard workflow, lein plugin, or such, for building/serving a project's README.md, doc/*.md, etc.? During development, I mean, to preview the docs while working on them. signature.asc Description: Message signed with OpenPGP using GPGMail
Re: The Cons in iterate's return value
On Thursday, April 17, 2014 10:36:13 AM UTC-5, A. Webb wrote: On Wednesday, April 16, 2014 10:35:14 PM UTC-5, Mars0i wrote: But then should realized? be able to deal with a Cons containing a LazySeq? (Is this an issue worthy of JIRA? I've never submitted there, and am not sure I know enough to do so. Willing to try to figure it out.) No, realized? works as intended on a single object. If you want to know if there is an unrealized portion remaining of a sequence, just roll your own function to step through it, being careful not to force realization of unrealized portions while doing so. Untested example: Very nice--thanks. But there's still a conflict between the docstrings for iterate and realized?, right? If it's true that iterate Returns a lazy sequence, then it's false that realized? Returns true if a value has been produced for a ... lazy sequence, since it throws an exception on what iteratereturns. -- 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.
Re: Light table
BTW I changed the website copy a little for Cursive, since much less bravery is now required than previously. Thanks for the heads up! I'd forgotten that was still there. On 17 April 2014 13:12, Mark Engelberg mark.engelb...@gmail.com wrote: On Wed, Apr 16, 2014 at 6:01 PM, Colin Fleming colin.mailingl...@gmail.com wrote: Standard disclaimer: I develop Cursive. How's Cursive coming along? The website still says it's only for those who are feeling brave. -- 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.
Re: Style question (predicates)
While *every?* and *not-any?* return true or false, *some* returns the first truthy value in a sequence, or nil if there are none. Similarly, *empty?* returns true or false, while *empty* and *not-empty*return a collection or nil. However, it seems as if* some*, *empty*, and *not-empty *are intended to be used like predicates, as well other ways. They are predicates in the Common Lisp sense. This makes me think that question marks are supposed to be reserved for functions that return booleans. -- 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.
Emacs - error with `nrepl-jack-in'
Hi List, just installed lein2 and can start 'lein2 repl' successfully on the command-line. 'lein repl' works too, since I defined an alias in my .bashrc. After installing packages clojure-mode and nrepl in Emacs, I get this error when trying `nrepl-jack-in': ,- | error in process sentinel: Could not start nREPL server: /bin/bash: Line | 1: lein: Command not found. `- I'm on Archlinx with #+begin_src emacs-lisp (emacs-version) #+end_src #+results: : GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.7) : of 2014-01-28 on var-lib-archbuild-extra-x86_64-juergen I googled some related sites and it seems it might be an Emacs (exec-) path problem, but a reboot did not help. -- cheers, Thorsten -- 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.
Re: Clojure Office Hours
@Miguel: There are somewhat subtle arrows on the sides for navigation. Thursday, April 24 is still open. I will give a slot to you if you want one, just email me if the 24th is full when you check again. @all: But yes, this round of office hours is almost over. I will be in transit for at least a couple weeks in the beginning of May, but I will probably book some more hours when I become stationary again. It will probably be more like 4 or 5 hours a week, though, not 8. @all: Several poor souls from Europe are going to stay up until 2 a.m. for this, and people further east are probably just silent because the time difference is so large; So, I definitely think some European / African / Asian / Australian clojure devs' office hours would be popular. It's fun, and you might find some people to hire, if that's your thing! --Leif On Thursday, April 17, 2014 10:43:50 AM UTC-4, Miguel Ping wrote: Hey, the schedule's full! :\ On Wednesday, April 16, 2014 2:57:49 AM UTC+1, Marcus Blankenship wrote: Leif, thanks for the great session today. Not only did I get a jump start on my next 4Clojure problems, but I learned some emacs as well! Very enjoyable, and I look forward to next week’s session. THANK YOU! All, if you’re trying to get a jumpstart on Clojure, I highly recommend Leif’s office hours. -Marcus On Apr 15, 2014, at 6:50 PM, Leif leif.p...@gmail.com wrote: @Jakub: Thanks for your kind words. I'm definitely no industry hero, but I hope Clojure devs of all levels start having more pair programming fun. @Tim: Clojurescript UI programming being *way* out of my comfort zone, I learned quite a lot from you yesterday. So thank *you*. @Everyone: To clarify / reiterate: You do *not* need a plan, a project, or a specific problem. If you want to work through Project Euler, 4clojure, clojure-koans, the ClojureBridge materials, some other clojure tutorial, or just play it by ear, I am happy to try it out. --Leif On Tuesday, April 15, 2014 8:00:17 AM UTC-4, frye wrote: I just came from an office hours session, yesterday with Leif. This is good stuff guys, and a great way to learn and meet with other developers. Highly recommended. Thanks Leif Tim Washington Interruptsoftware.com http://interruptsoftware.com/ On Tue, Apr 15, 2014 at 5:12 AM, Jakub Holy jakub...@iterate.no wrote: Hi Leif, This is a great activity, thank you for contributing to the community this way! Do not be surprise and discouraged by the fact that the interest seems low. I have a similar experience - in my company we can consult with an industry hero yet people use the opportunity seldom, presumably because of multiple factors: they (wrongly) don't feel that they do not have something important/interesting enough to bother him, they are little scared of talking to and exposing themselves and their work to this experienced guy, and might find it difficult to explain their challenge to an outsider and get an advice within the limited time scope. On the other hand, those who dare to use the opportunity benefit from it greatly. Good luck, Jakub On Friday, April 11, 2014 4:13:18 AM UTC+2, Leif wrote: Hmm... less interest than I'd expected, given recent posts. Maybe I should rename the thread to Free Clojure Consulting / Tutoring. Tht's not spammy. FYI, all bookings are automatically confirmed, so don't fret if I don't instantly respond. @Tim: Sounds good! Of course, now I'll have to take some time this weekend and try to actually understand Om. :) (or maybe ?o_0? ) --Leif On Thursday, April 10, 2014 9:56:37 AM UTC-4, frye wrote: Sounds great. I just sent a request. Tim Washington Interruptsoftware.com http://interruptsoftware.com/ On Thu, Apr 10, 2014 at 9:43 AM, Colin Fleming colin.ma...@gmail.com wrote: Hi Leif, This sounds like a very interesting project, please report back and let us know how it went! I'd be very interested to know. Cheers, Colin On 11 April 2014 00:53, Leif leif.p...@gmail.com wrote: Hi, everybody. Inspired by the SF Bay Area clojure group, ClojureBridge, and the great talks on community education from Clojure/West on youtube, I've decided to try holding my own personal Clojure office hours (online). I am personally of the opinion that face-to-face interaction is superior, so you may want to get your local user group to follow the Bay Area's lead. But if you don't agree, or you don't live near such a user group, then read on. Borrowed from the Bay Area's posting: This is a [2-person] meetup for anyone who is working on a Clojure project and wants to talk over their code or approach with an experienced Clojure developer. Projects of all levels and complexity are welcome, anyone just getting started in Clojure is encouraged to come in and talk through their first Euler or 4Clojure problems. Disclaimer: This community being what it
Re: Style question (predicates)
This is a bit tangential, but your function is-nsf-code? brings up another style question. Is it really necessary to use the is- prefix? I used to do this too, but I realized recently that it is a Java-ism and seems out of place in Clojure. Clojure's boolean functions do fine without it because the question mark conveys the fact that it is boolean. I removed all instances of this prefix from my active projects, including many places in Nightcode and a few in play-clj. On Thursday, April 17, 2014 12:33:42 PM UTC-4, Sean Corfield wrote: The library coding standards[1] say: * Use '?' suffix for predicates. - N.B. - predicates return booleans and the community Clojure style guide[2] says: * The names of predicate methods (methods that return a boolean value) should end in a question mark. (i.e.even?). Both of these imply that if you have a function that returns a boolean (and that is intended for use as a predicate), it should be named to end in '?'. Fair enough. My question is about the reverse implication: * Should a function whose name ends in '?' return a (strict) boolean value? Looking at the docstrings of a random selection of functions found by (apropos ?), they all seem to return specifically true or false. I did not do an exhaustive check. Is the intent that foo? implies a result of true or false - or could foo? return any truthy / falsey value (and therefore any Clojure value). Concrete example that spurred this discussion from some code at work: (defn is-nsf-code? Given an error code, return truthy if it is NSF. [code] (#{BE1 BE2} code)) Clearly the result here could be nil or a string but it's definitely meant to be used as a predicate. Similarly: (defn nsf? Given the result of an SBW sale, return true if it failed with NSF. [result] (and (= failure (:result result)) (some is-nsf-code? (:errors result Again, the result could be false or nil or a string but is meant to be used as a predicate. As an aside, for core.typed, we annotate the first as [String - Boolean] with ^:no-check so it type checks as a true/false predicate and then we annotate the second as [SBWResult - (Nilable Boolean)] and that's all fine... but is it good style? [1] http://dev.clojure.org/display/community/Library+Coding+Standards [2] https://github.com/bbatsov/clojure-style-guide#naming Sean Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- 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.
Re: Style question (predicates)
My personal preference is that fns ending in ? return a strict boolean, to be consistent with clojure.core. If I need the value I create another fn. So I would have nsf-code? *and* get-nsf-code. Plus for more complicated values, if you change their representation you don't have to change the code calling the predicate, only the getter fn (if that), --Leif On Thursday, April 17, 2014 12:33:42 PM UTC-4, Sean Corfield wrote: The library coding standards[1] say: * Use '?' suffix for predicates. - N.B. - predicates return booleans and the community Clojure style guide[2] says: * The names of predicate methods (methods that return a boolean value) should end in a question mark. (i.e.even?). Both of these imply that if you have a function that returns a boolean (and that is intended for use as a predicate), it should be named to end in '?'. Fair enough. My question is about the reverse implication: * Should a function whose name ends in '?' return a (strict) boolean value? Looking at the docstrings of a random selection of functions found by (apropos ?), they all seem to return specifically true or false. I did not do an exhaustive check. Is the intent that foo? implies a result of true or false - or could foo? return any truthy / falsey value (and therefore any Clojure value). Concrete example that spurred this discussion from some code at work: (defn is-nsf-code? Given an error code, return truthy if it is NSF. [code] (#{BE1 BE2} code)) Clearly the result here could be nil or a string but it's definitely meant to be used as a predicate. Similarly: (defn nsf? Given the result of an SBW sale, return true if it failed with NSF. [result] (and (= failure (:result result)) (some is-nsf-code? (:errors result Again, the result could be false or nil or a string but is meant to be used as a predicate. As an aside, for core.typed, we annotate the first as [String - Boolean] with ^:no-check so it type checks as a true/false predicate and then we annotate the second as [SBWResult - (Nilable Boolean)] and that's all fine... but is it good style? [1] http://dev.clojure.org/display/community/Library+Coding+Standards [2] https://github.com/bbatsov/clojure-style-guide#naming Sean Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ Perfection is the enemy of the good. -- Gustave Flaubert, French realist novelist (1821-1880) -- 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.