Re: Is there a reason why 'some' returns nil instead o false?
Jim - FooBar(); jimpil1...@gmail.com writes: nice catch and point taken... however the exact same thing would happen if this was a function...it's just wrong ! Yes. A correct version is (defn in? [coll e] (some (partial = e) coll)) 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
Re: A tutorial for how to setup your clojure development environment for: Emacs, Leiningen and Linux.
What I'd suggest is that there be a git repo for clojure docs, where things can be brought together like the types of articles i'm writing, but tended by the clojure community. So i wouldn't suggest putting: Getting started with emacs (for clojure) sic. in the clojure-mode repo, but perhaps a git repo, owned by yourself or Rich or something, could be created where you can pull contributions into. Then I could clone that repo, make changes and submit pull requests to you, which you could then reject with comments or approve, and then pull the changes into that repo. Possible? Others c this having value? What are the issues with this approach? On Thursday, June 14, 2012 4:12:10 PM UTC-7, Phil Hagelberg wrote: On Thu, Jun 14, 2012 at 2:09 PM, fenton fenton.trav...@gmail.com wrote I'm not going to give up the wonderful prettiness that github does with a line like: ```clojure (defn myfunc [x] (+ 2 x)) ``` which i can't do with confluence. This group is about a programming language, nice colorizing is really great for documentation. Hmm... while I agree that Confluence is bad for this sort of thing, I don't see the Clojure maintainers changing their mind and accepting pull requests since they've been pretty staunchly opposed to them for ages. However, I would be perfectly happy moving the Getting Started with Emacs tutorial into the clojure-mode repository and changing the Confluence wiki page to point to there. The Getting Started with Leiningen page already points off to Github, and I think we're likely to get higher quality contributions that way. I'll put it on my todo list, but if you're interested in helping a pull request would make it happen more quickly. thanks, Phil -- 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
Best practices for named arguments
TL;DR: I want to know best practices for designing functions with multiple optional arguments. Okay, so I'm working to build machine learning algorithms in Clojure, and they tend to need many arguments. Being a long-time Ruby dev, I like to provide sensible defaults for almost all potential arguments that the functions take. However, there are some parameters that have to be explicit (namely, the data). To alleviate the pain here, I've started to experiment with named arguments. So far, I've come up with something like the following: (defn descend [xs ys args] (let [defaults {:gradient-fn gradient :cost-fn cost :yield-fn println :alpha 0.01 :iterations 1000 :thetas (matrix 0 (second (dim xs)) 1)} options (merge defaults (apply hash-map args)) {:keys [gradient-fn cost-fn yield-fn thetas alpha iterations]} options] (do-the-algorithm-using-locally-bound-vars))) It's a little wordy and could be extracted into a macro a la defnk (RIP clojure.contrib.def), but it works. However, if I then want to use method delegation for some algorithms, the named argument endeavor gets trickier. Say I have the same function in two namespaces. One is a general gradient descent function, and the other is a specific gradient descent function whose only role is to curry a named parameter into the general function. I want to do something like the following: (defn descend [xs ys args] (optimization/descend xs ys (conj args :cost-fn cost))) The problem, of course, is that if I want to delegate the args array to another function, I have to destructure args first before passing it into another function. In fact, if I ever have a delegating function like this (where a partial apply isn't good enough), I can't pass args through to the delegating function because it's automatically vectorized. How do I splat vectors into parameter lists? (Should I be passing in records/maps instead of named parameters?) Thanks, David -- 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
Re: Best practices for named arguments
TL;DR: I want to know best practices for designing functions with multiple optional arguments. Use destructing: (defn f [required {:keys [foo bar] :or {foo :default}}] [required foo bar]) (f 3 :bar 1 :foo 2) ;= [3 2 1] (f 3 :bar 1) ;= [3 :default 1] -- 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
Re: Best practices for named arguments
Hi, you can use destructuring to provide defaults. And you can easily curry in options when passing things through. (defn general-descend [xy ys {:keys [gradient-fn cost-fn yield-fn alpha iterations thetas] :or {cost-fncost yield-fn println alpha 0.01 iterations 1000 thetas (matrix 0 (second (dim xs)) 1)}}] ...) (defn special-descend [xs ys options] (apply general-descend xs ys :cost-fn cost options)) Kind regards Meikel -- 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
Re: Best practices for named arguments
I'm not sure you read the whole question. I want to know how to delegate optional arguments to other functions with the same method signatures. On Friday, June 15, 2012 12:04:00 AM UTC-7, Vinzent wrote: TL;DR: I want to know best practices for designing functions with multiple optional arguments. Use destructing: (defn f [required {:keys [foo bar] :or {foo :default}}] [required foo bar]) (f 3 :bar 1 :foo 2) ;= [3 2 1] (f 3 :bar 1) ;= [3 :default 1] -- 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
Re: Best practices for named arguments
Ah I see, I didn't realize I could apply the general-descend algorithm to both atoms and arrays to get a flattened list. Thanks! On Friday, June 15, 2012 12:05:36 AM UTC-7, Meikel Brandmeyer (kotarak) wrote: Hi, you can use destructuring to provide defaults. And you can easily curry in options when passing things through. (defn general-descend [xy ys {:keys [gradient-fn cost-fn yield-fn alpha iterations thetas] :or {cost-fncost yield-fn println alpha 0.01 iterations 1000 thetas (matrix 0 (second (dim xs)) 1)}}] ...) (defn special-descend [xs ys options] (apply general-descend xs ys :cost-fn cost options)) Kind regards Meikel -- 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
Re: ANN: lambic v. 0.1.0
Seems very interesting! -- 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
Re: Clojurescript (latest) advanced mode compilation = java.lang.ClassCastException ?
compiled, no problem nice work, and thanks D On Friday, 15 June 2012 10:01:38 UTC+10, David Nolen wrote: This should be resolved in master - please let us know if you continue to run into problems. On Thu, Jun 14, 2012 at 3:06 PM, David Nolen dnolen.li...@gmail.comwrote: Thank you! http://dev.clojure.org/jira/browse/CLJS-315 On Thu, Jun 14, 2012 at 6:43 AM, Dave Sann daves...@gmail.com wrote: I (think) I have tracked it down to the following section of code from jayq.core (simplified) --- (ns jayq.core) (extend-type js/jQuery IIndexed (-nth [this n] (when ( n (count this)) (.slice this n (inc n (-nth [this n not-found] (if ( n (count this)) (.slice this n (inc n)) (if (undefined? not-found) nil not-found))) ILookup (-lookup ([this k] (or (.slice this k (inc k)) nil)) ([this k not-found] (-nth this k not-found) ; here if I comment and replace with 1 this will compile in advanced mode. ;1 )) ) --- if I compile this in simple mode - it is ok. In advanced, I get the following stack trace: java.lang.ClassCastException: java.lang.String cannot be cast to clojure.lang.Named at clojure.core$namespace.invoke(core.clj:1497) at cljs.compiler$resolve_existing_var.invoke(compiler.clj:110) at cljs.compiler$eval1054$fn__1056.invoke(compiler.clj:716) at clojure.lang.MultiFn.invoke(MultiFn.java:163) at cljs.compiler$emit_block.invoke(compiler.clj:333) at cljs.compiler$emit_fn_method.invoke(compiler.clj:512) at cljs.compiler$eval952$fn__954.invoke(compiler.clj:573) at clojure.lang.MultiFn.invoke(MultiFn.java:163) at cljs.compiler$emits.doInvoke(compiler.clj:232) at clojure.lang.RestFn.invoke(RestFn.java:436) at cljs.compiler$eval1089$fn__1091.invoke(compiler.clj:791) at clojure.lang.MultiFn.invoke(MultiFn.java:163) at cljs.compiler$emit_block.invoke(compiler.clj:333) at cljs.compiler$eval996$fn__998.invoke(compiler.clj:633) at clojure.lang.MultiFn.invoke(MultiFn.java:163) at cljs.compiler$compile_file_STAR_.invoke(compiler.clj:1668) at cljs.compiler$compile_file.invoke(compiler.clj:1705) at cljs.compiler$compile_root.invoke(compiler.clj:1766) at cljs.closure$compile_dir.invoke(closure.clj:364) at cljs.closure$eval1981$fn__1982.invoke(closure.clj:396) at cljs.closure$eval1910$fn__1911$G__1901__1918.invoke(closure.clj:266) at cljs.closure$eval1968$fn__1969.invoke(closure.clj:410) at cljs.closure$eval1910$fn__1911$G__1901__1918.invoke(closure.clj:266) at cljs.closure$build.invoke(closure.clj:874) at user$compile_cljs.invoke(NO_SOURCE_FILE:273) at user$cljs_build.invoke(NO_SOURCE_FILE:284) at clojure.lang.AFn.applyToHelper(AFn.java:167) at clojure.lang.AFn.applyTo(AFn.java:151) at clojure.core$apply.invoke(core.clj:605) at clojure.core$partial$fn__4072.doInvoke(core.clj:2345) at clojure.lang.RestFn.invoke(RestFn.java:408) at user$changed_fn$fn__2184.invoke(NO_SOURCE_FILE:88) at user$watch.invoke(NO_SOURCE_FILE:103) at user$main$fn__2271.invoke(NO_SOURCE_FILE:387) at clojure.core$binding_conveyor_fn$fn__3989.invoke(core.clj:1819) at clojure.lang.AFn.call(AFn.java:18) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) On Thursday, 14 June 2012 18:28:56 UTC+10, Dave Sann wrote: It may take some time. I'll see what I can do. D On Thursday, 14 June 2012 00:09:49 UTC+10, David Nolen wrote: Does this problem only occur on a specific project? Can you create a minimal reproducible case? Thanks, David On Wed, Jun 13, 2012 at 7:54 AM, So far I can only confirm the following. It does not occur if I revert to commit ** 7b6678bead5a0733d0388ddaa4e78e**714b9d6187 but does from ** e959e0205a4b42a099c120a7742731**4d288c965b (Merge branch 'cljs-305-proto-inline') onward. I have been unable to get a stacktrace with the exception - So at the moment I really don't know why this is occurring. If I find out more I will report it. Otherwise - I am keen to know if anyone else sees a similar problem. D On Tuesday, 12 June 2012 22:51:39 UTC+10, David Nolen wrote: That ticket has been resolved. For your own issue, more details required. If you can isolate it, open a ticket. David On Tue, Jun 12, 2012 at 8:16 AM, I have started seeing java.lang.ClassCastException when compiling in advanced mode. Compilation is fine with simple optimisations. This happens with source code that previously did not complain... I am wondering if this might be related to : https://groups.google.com/d/**to**pic/clojure/NHIzoUz0wmc/**discus*
Re: Is there a reason why 'some' returns nil instead o false?
On 15/06/12 07:27, Tassilo Horn wrote: Jim - FooBar();jimpil1...@gmail.com writes: nice catch and point taken... however the exact same thing would happen if this was a function...it's just wrong ! Yes. A correct version is (defn in? [coll e] (some (partial = e) coll)) Bye, Tassilo If just wrapping 'some' I think this is easier to read (defn in? [coll e] (some #{e} coll)) thanks for your time :-) Jim -- 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
Re: Is there a reason why 'some' returns nil instead o false?
On 15/06/12 10:47, Jim - FooBar(); wrote: On 15/06/12 07:27, Tassilo Horn wrote: Jim - FooBar();jimpil1...@gmail.com writes: nice catch and point taken... however the exact same thing would happen if this was a function...it's just wrong ! Yes. A correct version is (defn in? [coll e] (some (partial = e) coll)) Bye, Tassilo If just wrapping 'some' I think this is easier to read (defn in? [coll e] (some #{e} coll)) thanks for your time :-) Jim sorry...you meant to return boolean not the actual element! my bad... Jim -- 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
Re: 'dotimes' will not work inside a 'doto'...
On 15/06/12 01:00, Andy Fingerhut wrote: I highly recommend clojuredocs.org http://clojuredocs.org for adding examples of pitfalls/traps. I've added several there myself, e.g. for clojure.core/future (and also clojure.core/pmap, clojure.java.shell/sh): http://clojuredocs.org/clojure_core/clojure.core/future It takes only a few minutes to do so. Andy Thanks Andy I did not know we could do that... I logged in and added a warning for using 'dotimes' inside a 'doto' along with an example of the problem and the 2 remedies that I'm aware of...if anyone has any suggestions for making my explanation less verbose - please throw them in ... :-) Jim -- 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
Re: If a protocol creates a Java interface under the covers...
You keep talking about performance. I'm a long way from being a clojure expert, but one thing I *do* know is that premature optimization is the root of many many evils. May I suggest you first get your app working, in a clean understandable fashion, ideally with some solid unit tests. Then, and only then, profile it, work out if it performs adequately, and optimise the parts that need it? (apologies if this is the approach you are already taking - it's bit clear from your posts if that is the case) - Korny On Jun 14, 2012 7:53 PM, Jim - FooBar(); jimpil1...@gmail.com wrote: On 14/06/12 10:01, nicolas.o...@gmail.com wrote: There should not be any atom in this. The function would be more reusable if it take a board and return a board without changing any atom. (You will still be to express the atom change around it but you could also use to try and build a tree without undoing anything.) Yes you are right nicolas...I really don't need to reset! the atom inside 'move'...It has been addressed... I don't think this approach is extensible enough. You will want to implement more games later. So maybe a good thing is to use protocols or multimethods to represent game rules. The atoms should disappear until later. (You are building a library of moves and rules, there is no notion of state in that. Only when you use it for playing a game on a GUI you will need a state) I don't want to involve multi-methods in this particular project for performance reasons...I do get your point but current-items is only fetching the atom or the derefed atom from a game...more game means adding a clause so it fetches the appropriate pieces...game rules will be implemented in core.logic it has nothing to do with this fn. I do agree I will only need the atom when playing an actual game though... Jim -- 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+unsubscribe@**googlegroups.comclojure%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/**group/clojure?hl=enhttp://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Enfocus issues
Thanks for point that out. It will be fixed shortly. CK On Friday, June 15, 2012 1:40:22 AM UTC-4, Andreas Kostler wrote: There you go...wrong on the example-page then. Thanks David On 15 June 2012 15:00, David Nolen dnolen.li...@gmail.com wrote: On Fri, Jun 15, 2012 at 1:23 AM, Andreas Kostler andreas.koest...@leica-geosystems.com wrote: (set! (.onload js/window) start) Should be (set! (.-onload js/window) start) -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Best practices for named arguments
I think the best is to use maps. It is rarly a good idea to have too many arguments. Am 15.06.2012 08:51 schrieb David Jacobs da...@wit.io: TL;DR: I want to know best practices for designing functions with multiple optional arguments. Okay, so I'm working to build machine learning algorithms in Clojure, and they tend to need many arguments. Being a long-time Ruby dev, I like to provide sensible defaults for almost all potential arguments that the functions take. However, there are some parameters that have to be explicit (namely, the data). To alleviate the pain here, I've started to experiment with named arguments. So far, I've come up with something like the following: (defn descend [xs ys args] (let [defaults {:gradient-fn gradient :cost-fn cost :yield-fn println :alpha 0.01 :iterations 1000 :thetas (matrix 0 (second (dim xs)) 1)} options (merge defaults (apply hash-map args)) {:keys [gradient-fn cost-fn yield-fn thetas alpha iterations]} options] (do-the-algorithm-using-locally-bound-vars))) It's a little wordy and could be extracted into a macro a la defnk (RIP clojure.contrib.def), but it works. However, if I then want to use method delegation for some algorithms, the named argument endeavor gets trickier. Say I have the same function in two namespaces. One is a general gradient descent function, and the other is a specific gradient descent function whose only role is to curry a named parameter into the general function. I want to do something like the following: (defn descend [xs ys args] (optimization/descend xs ys (conj args :cost-fn cost))) The problem, of course, is that if I want to delegate the args array to another function, I have to destructure args first before passing it into another function. In fact, if I ever have a delegating function like this (where a partial apply isn't good enough), I can't pass args through to the delegating function because it's automatically vectorized. How do I splat vectors into parameter lists? (Should I be passing in records/maps instead of named parameters?) Thanks, David -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Enfocus issues
Andreas Thank you for pointing this out. I have fixed this on the readme page. I also noticed it is wrong in a few other places. I will fix them today also. Enfocus also has a google group if you run into more issues. https://groups.google.com/group/enfocus Creighton -- 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
Re: If a protocol creates a Java interface under the covers...
Performace was an issue right from the start for this project, that's why I went down the protocol/record path instead of multi-methods...surely, this is a decision to be made in the beginning, isn't it? I did take into account all the comments so far...my world is now fully immutable, reset! is out of 'move', and I've got far less macros (replaced them with return-type-hinted fns)... Also I only starting optimizing (type-hinting) when the namespace finished...ok, I did have some design error as it turned out, but it was only when I had no more code to write in that namespace that I started type-hinting... I appreciate your concerns though... :-) Jim On 15/06/12 12:41, Korny Sietsma wrote: You keep talking about performance. I'm a long way from being a clojure expert, but one thing I *do* know is that premature optimization is the root of many many evils. May I suggest you first get your app working, in a clean understandable fashion, ideally with some solid unit tests. Then, and only then, profile it, work out if it performs adequately, and optimise the parts that need it? (apologies if this is the approach you are already taking - it's bit clear from your posts if that is the case) - Korny -- 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
Re: Is there a reason why 'some' returns nil instead o false?
Jim - FooBar(); jimpil1...@gmail.com writes: Yes. A correct version is (defn in? [coll e] (some (partial = e) coll)) If just wrapping 'some' I think this is easier to read (defn in? [coll e] (some #{e} coll)) thanks for your time :-) sorry...you meant to return boolean not the actual element! No, my variant also returns nil for e is not in coll, but the difference is that my version works for nil and false values: (in? [nil false] nil) = true (in? [nil false] false) = true whereas your version with the hash-set returns nil and false in those cases. 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
Re: clojure.core.cache status?
and I'm wondering how stable the APIs are and how close a 0.6.0 release might be? Very very close. In fact, I will cut a release some time today. -- 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
Is there a better way to do this
HI All, I am receiving a sequence from a particular function so I want to get that sequence and converted to a vector o I can return a vector instead. (defn get-events-hlpr [] Retrieves events from MongoDB. (init) (def items (mc/find-maps events)) ;; get the sequence (loop [vtr [] data items] (if (zero? (count data)) vtr (recur (conj vtr (dissoc (first data) :_id))(rest data) Is the right way? -- 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
clojure-csv library write-csv examples
I would appreciate getting a pointer to some clojure-csv library write-csv examples. Thank you. -- 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
Re: clojure-csv library write-csv examples
The reason why I asked this question is this code looks like it's using another csv library, so I'm confused. (require '[clojure.data.csv :as csv] '[clojure.java.io :as io]) (with-open [in-file (io/reader in-file.csv)] (doall (csv/read-csv in-file))) (with-open [out-file (io/writer out-file.csv)] (csv/write-csv out-file [[abc def] [ghi jkl]])) On Friday, June 15, 2012 9:57:03 AM UTC-4, octopusgrabbus wrote: I would appreciate getting a pointer to some clojure-csv library write-csv examples. Thank you. -- 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
Re: Is there a better way to do this
On Friday, June 15, 2012 9:54:37 AM UTC-4, Joao_Salcedo wrote: Is the right way? You could just do (vec (mc/find-maps events)). Also, using def creates a top-level var. You probably wanted (let [items (mc/find-maps events)] ...) instead. -- 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
Re: Is there a better way to do this
You could just do (vec (mc/find-maps events)). Also, to dissoc :_id from each item, do (vec (map #(dissoc % :_id) (mc/find-maps events))). -- 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
Re: Is there a better way to do this
I am receiving a sequence from a particular function so I want to get that sequence and converted to a vector o I can return a vector instead. (defn get-events-hlpr [] Retrieves events from MongoDB. (init) (def items (mc/find-maps events)) ;; get the sequence (loop [vtr [] data items] (if (zero? (count data)) vtr (recur (conj vtr (dissoc (first data) :_id))(rest data) Is the right way? Why do you want to return a vector? Do you absolutely need some of the features that only vectors can provide (indexing, etc.)? Nevertheless, the code that you wrote is not correct in the Clojure world. `def` creates a top-level var and that should be only used to store `global` bindings; `def` is not a way to declare variables. You should write the code like this instead - (init) ;; outside, preferably called only once during app initialisation (defn get-events-hlpr [] Retrieves events from MongoDB. (vec (mc/find-maps events))) Regards, BG -- Baishampayan Ghose b.ghose at gmail.com -- 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
Re: Best practices for named arguments
Hello David. I have a very similar scenario according to named parameters liker you. Therefore I have written the library clojure.options which can be found here: https://github.com/guv/clojure.options The latest version is also on clojars. Greetings, Gunnar -- 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
Re: Is there a better way to do this
Baishampayan Ghose b.gh...@gmail.com writes: Hi Baishampayan, (defn get-events-hlpr [] Retrieves events from MongoDB. (vec (mc/find-maps events))) Is that Emacs Lisp or Common Lisp? Bye, Tassilo Just nitpicking that you adapted the OP's error of adding the docstring after the parameter vector. ;-) -- 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
Re: clojure-csv library write-csv examples
On Friday, June 15, 2012 10:01:24 AM UTC-4, octopusgrabbus wrote: The reason why I asked this question is this code looks like it's using another csv library, so I'm confused. That's because it is using another csv library: https://github.com/clojure/data.csv. clojure-csv: https://github.com/davidsantiago/clojure-csv -- 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
Re: Is there a better way to do this
Hi Baishampayan, (defn get-events-hlpr [] Retrieves events from MongoDB. (vec (mc/find-maps events))) Is that Emacs Lisp or Common Lisp? Bye, Tassilo Just nitpicking that you adapted the OP's error of adding the docstring after the parameter vector. ;-) You are right, Tassilo, I just copied the original code to a scratch buffer and edited it without looking at the doc-string. This is how it should be done, really - (defn get-events-hlpr Retrieves events from MongoDB. [] (vec (map #(dissoc :_id %) (mc/find-maps events ;; remove the :_id as well Regards, BG -- Baishampayan Ghose b.ghose at gmail.com -- 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
Re: Calling Clojure from Java and classloader
On Wed, Jun 13, 2012 at 11:48 PM, Warren Lynn wrn.l...@gmail.com wrote: Ok, I hit a wall and really did not see this coming. Based on what I have read, its really easy for Clojure and Java to work together. So I wrote some test Clojure code with a very simple defrecord (say named as testrec) and AOT compile it, create a jar file, and add it to a HelloWorld java project in Eclipse. I can create object of class testrec and run its member functions. Cool, no problem. But then I put the same thing into my target Java system (for which I am consider Clojure for production use), I got java.lang.ExceptionInInitializerError exception when trying to create my testrec object. A little bit more digging suggests this is related to class loader, which I don't know much about. According to a web page, I need to do this: Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader()); before calling the constructor of my testrec class. Tried that, but I got java.security.AccessControlException: access denied (java.lang.RuntimePermission setContextClassLoader) Seems I cannot change the context class loader. What is the solution here? Sorry for the long post. But I hope this is not a dead end. Thanks a lot. It's not really a good idea to AOT your code and then directly try to use it from java. The generated java bytecode isn't guaranteed to be stable across versions of clojure, and you're depending on implementation details. One way to use your clojure code from java is through RT. An example would be the accepted answer here: http://stackoverflow.com/questions/2181774/calling-clojure-from-java Another tack you can take is to use gen-class to create a real java class from clojure and use that as an entry point to your clojure code. --Aaron -- 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
ClojureScript Analyzer Decoupled
Thanks to Raphael Amiard's hard work the ClojureScript analyzer is now decoupled: http://github.com/clojure/clojurescript/commit/9ad79e1c9b87c862ccb7ad6aad37d90414123c76 This is a big step towards making the ClojureScript compiler infrastructure pluggable. There's a couple of JS things to clean up in the backend and we're looking to remove any JS specific stuff from cljs.core so that alternate backends can compile the standard library with no fiddling. Fun times ahead! David -- 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
Re: ClojureScript Analyzer Decoupled
I've been working on a platform-agnostic version of this over here: https://github.com/halgari/universal-clojure/blob/master/src/universal_clojure/core.clj But I'd rather collaborate with ClojureScript. Are there any ongoing efforts to make this cross platform? The current analyzer contains quite a few java calls. For instance, .contains, and .indexOf. Is Raphael working on this, or can I take up that torch and implement these in pure Clojure? After that, I'd like to rip apart core.cljs and make it also platform agnostic. My idea is to standardize the native calls under a pseudo namespace called native. For instance: (defn alength [array] (native/alength array)) (defn aget [array idx default] (if (and (= idx 0) ( idx (alength array)) (native/aget array idx)) default)) All a new platform needs to do is have their compiler interpret native/alength as the platform specific call (.Length in CLR, len() in Python, etc.), and the above code is suddenly 100% cross platform. From there, porting to a new platform is no longer translate core.cljs, but instead, implement these 20 functions from native/. I'm really wanting to collaborate on this, since I plan on basing future versions of Clojure-Py completely off this code base. Any suggestions on how to go about this? I don't want to re-write anyone else's code, but I'm also kind of tired of waiting around for someone to hand me this on a silver platter :-). Timothy Baldridge On Fri, Jun 15, 2012 at 11:25 AM, David Nolen dnolen.li...@gmail.com wrote: Thanks to Raphael Amiard's hard work the ClojureScript analyzer is now decoupled: http://github.com/clojure/clojurescript/commit/9ad79e1c9b87c862ccb7ad6aad37d90414123c76 This is a big step towards making the ClojureScript compiler infrastructure pluggable. There's a couple of JS things to clean up in the backend and we're looking to remove any JS specific stuff from cljs.core so that alternate backends can compile the standard library with no fiddling. Fun times ahead! David -- 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 -- “One of the main causes of the fall of the Roman Empire was that–lacking zero–they had no way to indicate successful termination of their C programs.” (Robert Firth) -- 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
Re: ClojureScript Analyzer Decoupled
On Fri, Jun 15, 2012 at 1:41 PM, Timothy Baldridge tbaldri...@gmail.comwrote: But I'd rather collaborate with ClojureScript. Are there any ongoing efforts to make this cross platform? The current analyzer contains quite a few java calls. For instance, .contains, and .indexOf. Is Raphael working on this, or can I take up that torch and implement these in pure Clojure? A bootstrappable compiler infrastructure is not a goal at this point as far as I know. Certainly open to patches that make the analyzer easier to compile elsewhere. If somebody wants to make the compiler bootstrappable they need to outline some kind of plan that allows ClojureScript (JS) development to continue with minimal disruption. There are many decisions (non-reified vars and namespaces, compiler macros, etc.) which make a lot of sense for the JavaScript target that may not make sense for other targets. After that, I'd like to rip apart core.cljs and make it also platform agnostic. My idea is to standardize the native calls under a pseudo namespace called native. For instance: (defn alength [array] (native/alength array)) (defn aget [array idx default] (if (and (= idx 0) ( idx (alength array)) (native/aget array idx)) default)) Not necessary IMO we have compiler macros - each backend brings their own compiler macros. I'm really wanting to collaborate on this, since I plan on basing future versions of Clojure-Py completely off this code base. Any suggestions on how to go about this? I don't want to re-write anyone else's code, but I'm also kind of tired of waiting around for someone to hand me this on a silver platter :-). Make a Confluence page outlining what you think needs to be done so there can be some discussion. David -- 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
Re: clojure.core.cache status?
On Fri, Jun 15, 2012 at 6:43 AM, Michael Fogus mefo...@gmail.com wrote: and I'm wondering how stable the APIs are and how close a 0.6.0 release might be? Very very close. In fact, I will cut a release some time today. Awesome, thanx! That makes me feel a whole lot better about taking this puppy to production :) -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ 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
Re: clojure.core.cache status?
Well, I've tried to cut a release today, but the Hudson build is complaining about git connection errors. I will try again later today. -- 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
Re: Calling Clojure from Java and classloader
It's not really a good idea to AOT your code and then directly try to use it from java. The generated java bytecode isn't guaranteed to be stable across versions of clojure, and you're depending on implementation details. One way to use your clojure code from java is through RT. An example would be the accepted answer here: http://stackoverflow.com/questions/2181774/calling-clojure-from-java I really don't like the RT way (very clumsy), so I want to avoid it if possible. My .jar file will include Clojure itself in it, so compatibility with different version of Clojure is not a problem for me. But is there any other pitfalls using AOT? Another tack you can take is to use gen-class to create a real java class from clojure and use that as an entry point to your clojure code. My understanding is defrecord actually generate a real named java class. And I can use it in Eclipse project so it seems that is the case. BTW: my issue is solved by using some kind of annotation defined by the target Java framework. However, I could have been in a dead end if there is no such annotation and the classloader is messed up. So just as someone says things are never as simple as it seems. -- 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
Classpath set by lein swank or clojure-jack-in
One of the things that really been holding me back from moving ahead with Clojure is the difficulty I have running code that I'm writing using a repl. I generally use Emacs to code Clojure and I really don't understand how the classpath gets set when I use either lein swank + slime-connect or clojure-jack-in. I can't seem to get it to find either any dependencies that I've included in the project.clj or any of my own code without a lot of hit and miss trial and error. Eventually I can usually get it to work by doing all kind of things like compiling the .clj file, launching lein swank from different directories, etc. Is there a good document that I could read to understand how I should be doing this. It's so frustrating that I don't even want to try writing Clojure code most of the time eventhough I'm loving the language. Thanks, Dave -- 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
Re: Classpath set by lein swank or clojure-jack-in
Once I got lein swank and slime-connect working in emacs, I essentially stopped using the repl directly. The real magic and beauty of writing clojure in emacs is that I can write a fn, then C-x C-e to evaluate it right there in the file. I can evaluate inner forms, test every line of the file to confirm it works, experiment, etc, and the code is all saved in the file. I don't want to write anything *other* than clojure because it's such a beautiful and effective experience. -Original Message- From: Dave Kincaid kincaid.d...@gmail.com Sender: clojure@googlegroups.com Date: Fri, 15 Jun 2012 14:47:10 To: clojure@googlegroups.com Reply-To: clojure@googlegroups.com Subject: Classpath set by lein swank or clojure-jack-in One of the things that really been holding me back from moving ahead with Clojure is the difficulty I have running code that I'm writing using a repl. I generally use Emacs to code Clojure and I really don't understand how the classpath gets set when I use either lein swank + slime-connect or clojure-jack-in. I can't seem to get it to find either any dependencies that I've included in the project.clj or any of my own code without a lot of hit and miss trial and error. Eventually I can usually get it to work by doing all kind of things like compiling the .clj file, launching lein swank from different directories, etc. Is there a good document that I could read to understand how I should be doing this. It's so frustrating that I don't even want to try writing Clojure code most of the time eventhough I'm loving the language. Thanks, Dave -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Classpath set by lein swank or clojure-jack-in
I'm with you, Peter. The problem is I can't get lein swank and slime-connect working in a consistent way. It starts up fine but can't find any dependencies that I try to (use ...) or even any of the code in my .clj files that I try to access. I just can't understand what it's using as a classpath when it's launched. When I do stumble on the right combination of directory, lein swank and emacs buffer it is awesome! On Friday, June 15, 2012 5:42:59 PM UTC-5, Peter wrote: Once I got lein swank and slime-connect working in emacs, I essentially stopped using the repl directly. The real magic and beauty of writing clojure in emacs is that I can write a fn, then C-x C-e to evaluate it right there in the file. I can evaluate inner forms, test every line of the file to confirm it works, experiment, etc, and the code is all saved in the file. I don't want to write anything *other* than clojure because it's such a beautiful and effective experience. -- *From: * Dave Kincaid kincaid.d...@gmail.com *Sender: * clojure@googlegroups.com *Date: *Fri, 15 Jun 2012 14:47:10 -0700 (PDT) *To: *clojure@googlegroups.com *ReplyTo: * clojure@googlegroups.com *Subject: *Classpath set by lein swank or clojure-jack-in One of the things that really been holding me back from moving ahead with Clojure is the difficulty I have running code that I'm writing using a repl. I generally use Emacs to code Clojure and I really don't understand how the classpath gets set when I use either lein swank + slime-connect or clojure-jack-in. I can't seem to get it to find either any dependencies that I've included in the project.clj or any of my own code without a lot of hit and miss trial and error. Eventually I can usually get it to work by doing all kind of things like compiling the .clj file, launching lein swank from different directories, etc. Is there a good document that I could read to understand how I should be doing this. It's so frustrating that I don't even want to try writing Clojure code most of the time eventhough I'm loving the language. Thanks, Dave -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Classpath set by lein swank or clojure-jack-in
That's strange. You usually just run lein swank in the folder with you project.clj. Nothing to do wrong there. Can you show the project.clj and the directory structure of a non-working project? -- Sent from my mobile Am 16.06.2012 01:07 schrieb Dave Kincaid kincaid.d...@gmail.com: I'm with you, Peter. The problem is I can't get lein swank and slime-connect working in a consistent way. It starts up fine but can't find any dependencies that I try to (use ...) or even any of the code in my .clj files that I try to access. I just can't understand what it's using as a classpath when it's launched. When I do stumble on the right combination of directory, lein swank and emacs buffer it is awesome! On Friday, June 15, 2012 5:42:59 PM UTC-5, Peter wrote: Once I got lein swank and slime-connect working in emacs, I essentially stopped using the repl directly. The real magic and beauty of writing clojure in emacs is that I can write a fn, then C-x C-e to evaluate it right there in the file. I can evaluate inner forms, test every line of the file to confirm it works, experiment, etc, and the code is all saved in the file. I don't want to write anything *other* than clojure because it's such a beautiful and effective experience. -- *From: * Dave Kincaid kincaid.d...@gmail.com *Sender: * clojure@googlegroups.com *Date: *Fri, 15 Jun 2012 14:47:10 -0700 (PDT) *To: *clojure@googlegroups.com *ReplyTo: * clojure@googlegroups.com *Subject: *Classpath set by lein swank or clojure-jack-in One of the things that really been holding me back from moving ahead with Clojure is the difficulty I have running code that I'm writing using a repl. I generally use Emacs to code Clojure and I really don't understand how the classpath gets set when I use either lein swank + slime-connect or clojure-jack-in. I can't seem to get it to find either any dependencies that I've included in the project.clj or any of my own code without a lot of hit and miss trial and error. Eventually I can usually get it to work by doing all kind of things like compiling the .clj file, launching lein swank from different directories, etc. Is there a good document that I could read to understand how I should be doing this. It's so frustrating that I don't even want to try writing Clojure code most of the time eventhough I'm loving the language. Thanks, Dave -- 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+unsubscribe@**googlegroups.comclojure%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/**group/clojure?hl=enhttp://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Classpath set by lein swank or clojure-jack-in
Sure can. Here is the project.clj: (defproject swank-test 0.1 :source-path src/main/clj :test-path test/clj :java-source-path src/main/java :javac-options {:debug true :fork true} :resources-path src/main/resources :dependencies [[org.clojure/clojure 1.4.0] [cascalog 1.9.0] [org.apache.hadoop/hadoop-core 0.20.2 :exclusions [hsqldb/hsqldb]]]) I have a file named generator.clj in src/main/clj. When I do a lein swank from the directory that project.clj is in then run slime-connect in Emacs with the generator.clj file open. Then I try to do (use 'generator) and get Could not locate generator__init.class or generator.clj on classpath: [Thrown class java.io.FileNotFoundException] what am I doing wrong? On Friday, June 15, 2012 6:26:02 PM UTC-5, Moritz Ulrich wrote: That's strange. You usually just run lein swank in the folder with you project.clj. Nothing to do wrong there. Can you show the project.clj and the directory structure of a non-working project? -- Sent from my mobile Am 16.06.2012 01:07 schrieb Dave Kincaid kincaid.d...@gmail.com: I'm with you, Peter. The problem is I can't get lein swank and slime-connect working in a consistent way. It starts up fine but can't find any dependencies that I try to (use ...) or even any of the code in my .clj files that I try to access. I just can't understand what it's using as a classpath when it's launched. When I do stumble on the right combination of directory, lein swank and emacs buffer it is awesome! On Friday, June 15, 2012 5:42:59 PM UTC-5, Peter wrote: Once I got lein swank and slime-connect working in emacs, I essentially stopped using the repl directly. The real magic and beauty of writing clojure in emacs is that I can write a fn, then C-x C-e to evaluate it right there in the file. I can evaluate inner forms, test every line of the file to confirm it works, experiment, etc, and the code is all saved in the file. I don't want to write anything *other* than clojure because it's such a beautiful and effective experience. -- *From: * Dave Kincaid kincaid.d...@gmail.com *Sender: * clojure@googlegroups.com *Date: *Fri, 15 Jun 2012 14:47:10 -0700 (PDT) *To: *clojure@googlegroups.com *ReplyTo: * clojure@googlegroups.com *Subject: *Classpath set by lein swank or clojure-jack-in One of the things that really been holding me back from moving ahead with Clojure is the difficulty I have running code that I'm writing using a repl. I generally use Emacs to code Clojure and I really don't understand how the classpath gets set when I use either lein swank + slime-connect or clojure-jack-in. I can't seem to get it to find either any dependencies that I've included in the project.clj or any of my own code without a lot of hit and miss trial and error. Eventually I can usually get it to work by doing all kind of things like compiling the .clj file, launching lein swank from different directories, etc. Is there a good document that I could read to understand how I should be doing this. It's so frustrating that I don't even want to try writing Clojure code most of the time eventhough I'm loving the language. Thanks, Dave -- 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+unsubscribe@**googlegroups.comclojure%2bunsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/**group/clojure?hl=enhttp://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: clojure.core.cache status?
On Fri, Jun 15, 2012 at 1:23 PM, Michael Fogus mefo...@gmail.com wrote: Well, I've tried to cut a release today, but the Hudson build is complaining about git connection errors. I will try again later today. I saw 0.6.0 on Maven Central - thank you! I'm currently running our application test suite. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ 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
How to do aynchrounous producer/consumer
What I want to do is something I probably have done dozens of times in C++: two threads, one thread putting items in a queue, another taking it out (FIFO). How to do it in Clojure? I am at a loss. I thought about a few options: 1. watches, but it cannot change the queue itself (can only watch). plus, I am not sure watch function will run in another thread 2. agent, but how to notify the consumer thread when there is new item? How to block the consumer thread when there is no items in the queue? 3. Ping-pong promises: so the producer delivers a promise to the consumer, and the consumer immediately deliver another promise to the producer to acknowledge the receipt so the producer can move on. But that will prevent the producer to put the next item into the queue before the consumer finish its processing, so not exactly concurrent. I cannot believe I am the first one to encounter this. Can anyone suggest some idiomatic solution for the above? Thank you. -- 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
Re: Classpath set by lein swank or clojure-jack-in
Have you tried visiting the project.clj file in Emacs and then doing M-x clojure-jack-in ? That should start lein swank in the project directory and pull in all the dependencies as expected. (you should start lein swank in the project root directory - containing project.clj - not in a subdirectory) On Fri, Jun 15, 2012 at 5:10 PM, Dave Kincaid kincaid.d...@gmail.com wrote: Sure can. Here is the project.clj: (defproject swank-test 0.1 :source-path src/main/clj :test-path test/clj :java-source-path src/main/java :javac-options {:debug true :fork true} :resources-path src/main/resources :dependencies [[org.clojure/clojure 1.4.0] [cascalog 1.9.0] [org.apache.hadoop/hadoop-core 0.20.2 :exclusions [hsqldb/hsqldb]]]) I have a file named generator.clj in src/main/clj. When I do a lein swank from the directory that project.clj is in then run slime-connect in Emacs with the generator.clj file open. Then I try to do (use 'generator) and get Could not locate generator__init.class or generator.clj on classpath: [Thrown class java.io.FileNotFoundException] what am I doing wrong? -- 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
Re: Is there a better way to do this
On Fri, Jun 15, 2012 at 7:30 AM, Baishampayan Ghose b.gh...@gmail.com wrote: This is how it should be done, really - (defn get-events-hlpr Retrieves events from MongoDB. [] (vec (map #(dissoc :_id %) (mc/find-maps events ;; remove the :_id as well Or in Clojure 1.4.0 and later: (defn get-events-hlpr Retrieves events from MongoDB. [] (mapv #(dissoc :_id %) (mc/find-maps events))) ;; remove the :_id as well mapv, filterv and reduce-kv are new in 1.4.0. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ 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
Re: Classpath set by lein swank or clojure-jack-in
Probably over-cautious because of my ignorance, but I don't know if I would name the project swank-test as I haven't paid too close attention to what seems a slightly confusing rule about dashes in namespaces and underscores in filenames - also swank-test might be some sort of existing namespace that secretly gets loaded and oddly conflicts. I also haven't done much with directory structure under the src/project-name folder - do you have the same problems with a project that only has one file, or only files in that folder? Like I said this is mostly based on my ignorance, and getting a handle on the namespacing is probably a good idea, but I've never had an issue with my small projects with flat/default directory structures. Might workaround it for you in the short term. -Original Message- From: Sean Corfield seancorfi...@gmail.com Sender: clojure@googlegroups.com Date: Fri, 15 Jun 2012 18:44:46 To: clojure@googlegroups.com Reply-To: clojure@googlegroups.com Subject: Re: Classpath set by lein swank or clojure-jack-in Have you tried visiting the project.clj file in Emacs and then doing M-x clojure-jack-in ? That should start lein swank in the project directory and pull in all the dependencies as expected. (you should start lein swank in the project root directory - containing project.clj - not in a subdirectory) On Fri, Jun 15, 2012 at 5:10 PM, Dave Kincaid kincaid.d...@gmail.com wrote: Sure can. Here is the project.clj: (defproject swank-test 0.1 :source-path src/main/clj :test-path test/clj :java-source-path src/main/java :javac-options {:debug true :fork true} :resources-path src/main/resources :dependencies [[org.clojure/clojure 1.4.0] [cascalog 1.9.0] [org.apache.hadoop/hadoop-core 0.20.2 :exclusions [hsqldb/hsqldb]]]) I have a file named generator.clj in src/main/clj. When I do a lein swank from the directory that project.clj is in then run slime-connect in Emacs with the generator.clj file open. Then I try to do (use 'generator) and get Could not locate generator__init.class or generator.clj on classpath: [Thrown class java.io.FileNotFoundException] what am I doing wrong? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: Best practices for named arguments
Very cool, this is exactly what I wanted. Thanks. On Friday, June 15, 2012 7:27:05 AM UTC-7, Gunnar Völkel wrote: Hello David. I have a very similar scenario according to named parameters liker you. Therefore I have written the library clojure.options which can be found here: https://github.com/guv/clojure.options The latest version is also on clojars. Greetings, Gunnar -- 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
Re: Classpath set by lein swank or clojure-jack-in
Thanks I'll give those things a try. swank-test was just a small project I threw together as an example for this post. The directory structure is the same as my big project though. I'll play around with your suggestions and see if I can find a pattern to when it works and when it doesn't. Thanks, Dave On Friday, June 15, 2012 9:10:21 PM UTC-5, Peter wrote: Probably over-cautious because of my ignorance, but I don't know if I would name the project swank-test as I haven't paid too close attention to what seems a slightly confusing rule about dashes in namespaces and underscores in filenames - also swank-test might be some sort of existing namespace that secretly gets loaded and oddly conflicts. I also haven't done much with directory structure under the src/project-name folder - do you have the same problems with a project that only has one file, or only files in that folder? Like I said this is mostly based on my ignorance, and getting a handle on the namespacing is probably a good idea, but I've never had an issue with my small projects with flat/default directory structures. Might workaround it for you in the short term. -Original Message- From: Sean Corfield seancorfi...@gmail.com Sender: clojure@googlegroups.com Date: Fri, 15 Jun 2012 18:44:46 To: clojure@googlegroups.com Reply-To: clojure@googlegroups.com Subject: Re: Classpath set by lein swank or clojure-jack-in Have you tried visiting the project.clj file in Emacs and then doing M-x clojure-jack-in ? That should start lein swank in the project directory and pull in all the dependencies as expected. (you should start lein swank in the project root directory - containing project.clj - not in a subdirectory) On Fri, Jun 15, 2012 at 5:10 PM, Dave Kincaid kincaid.d...@gmail.com wrote: Sure can. Here is the project.clj: (defproject swank-test 0.1 :source-path src/main/clj :test-path test/clj :java-source-path src/main/java :javac-options {:debug true :fork true} :resources-path src/main/resources :dependencies [[org.clojure/clojure 1.4.0] [cascalog 1.9.0] [org.apache.hadoop/hadoop-core 0.20.2 :exclusions [hsqldb/hsqldb]]]) I have a file named generator.clj in src/main/clj. When I do a lein swank from the directory that project.clj is in then run slime-connect in Emacs with the generator.clj file open. Then I try to do (use 'generator) and get Could not locate generator__init.class or generator.clj on classpath: [Thrown class java.io.FileNotFoundException] what am I doing wrong? -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en
Re: How to do aynchrounous producer/consumer
(map consume (seque (produce-lazily))) On Friday, June 15, 2012 6:44:39 PM UTC-7, Warren Lynn wrote: What I want to do is something I probably have done dozens of times in C++: two threads, one thread putting items in a queue, another taking it out (FIFO). How to do it in Clojure? I am at a loss. I thought about a few options: 1. watches, but it cannot change the queue itself (can only watch). plus, I am not sure watch function will run in another thread 2. agent, but how to notify the consumer thread when there is new item? How to block the consumer thread when there is no items in the queue? 3. Ping-pong promises: so the producer delivers a promise to the consumer, and the consumer immediately deliver another promise to the producer to acknowledge the receipt so the producer can move on. But that will prevent the producer to put the next item into the queue before the consumer finish its processing, so not exactly concurrent. I cannot believe I am the first one to encounter this. Can anyone suggest some idiomatic solution for the above? Thank you. -- 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
Re: A tutorial for how to setup your clojure development environment for: Emacs, Leiningen and Linux.
On Thu, Jun 14, 2012 at 11:28 PM, fenton fenton.trav...@gmail.com wrote: What I'd suggest is that there be a git repo for clojure docs, where things can be brought together like the types of articles i'm writing, but tended by the clojure community. Phil has streamlined http://dev.clojure.org/display/doc/Getting+Started+with+Emacs and now all the actual documentation is in the clojure-mode repo (and the swank-clojure repo - for SLIME/Swank setup). That means anyone can fork, update and send a pull request. -- Sean A Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ World Singles, LLC. -- http://worldsingles.com/ 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