5:21clojurebot: "([coll] [n coll]); When lazy sequences are produced via functions that have side effects, any effects other than those needed to produce the first element in the seq do not occur until the seq is consumed. dorun can be used to force any effects. Walks through the successive nexts of the seq, does not retain the head and returns nil."

6:49LauJensen: Raynes: Rich Hickey prefers that we avoid direct comparisons, especially those with value judgements such as the ones I make in that post, so if you want to respect his oppinion its best to leave it alone - I'm personally a little torn on the issue, because 1) I dont want to step on anybody to promote Clojure, but 2) There are people who benefit from hearing others (in this case my) experience and the resulting conclusion

6:50Raynes: Well, you see, there is a little problem here. I kind of accidentally hit the post button before you replied. :|

6:55 I'm not sure how much it will hurt, but its important to distance Rich from those kinds of posts. What has happend with most of the comparisons is that a multitude of people write counter-blogposts showing of certain feats of their language which the feel weren't represented, and I encourage that

6:56Raynes: LauJensen: That's exactly what I did. I posted what you said, minus the "respect his opinion" bit, because I don't want to look like an asshole.

7:06LauJensen: rsynnott: We hosted the Climate Conference here in Denmark recently, and I believe it was in that setting that the Chinese said that Climate changes could not be a separate issue from population control as every person emits CO2 - So the first talks about it have already begun

7:06 But I agree its OT - Thats why I don't jump into the political comments - I just wanted to roll a big data set

7:07 here's what I'm trying to do. I have a dataset, that lives in a sorted-set-by. I'd like to be able to specify verifier functions, so that when that sorted-set is conj'd to, it runs the verifiers for it

7:08 I feel maybe I should be passing them in to the conj'ing function, and closing over them

10:01chouser: rhickey: looking at the old build.xml file, "test" appears to do test_contrib and test_datalog. "mvn ... package" reports testing datalog as well as the other namespaces, so I would assume that's sufficient.

10:59esj: chouser: OK. Turns out I was lying to you, sorry. In my git pulled clojure it seems to work. In that which I pulled from clojars using leiningen it does not. I'm using the clojure jar documented on the leiningen webpage, [org.clojure/clojure "1.1.0-alpha-SNAPSHOT"] . I'll see if there are alternatives, but clojars is being a little slow right now. Thanks for the pointers.

11:20zakwilson: I'm a bit confused about why I'd use atoms. It appears that everything I'd want to do with an atom could also be done with an agent without any changes in semantics. Are they smaller/faster?

12:17chouser: mabes: I think you're right, though you could still close the reader you passed in yourself.

12:18mabes: chouser: I suppose that is why the doc string is very explicit about the reader only being closed when the wntire seq is consumed. I was just wondering if with-open could be used in this context or not..

12:20chouser: with-open should be used instead of ever relying on read-lines to close the stream, IMO.

12:23chouser: you can use duck-streams/reader and with-open, and then line-seq

12:23mabes: well, I'm writing my own csv-lines that wraps SuperCSV so I was modeling it after read-lines when I ran into the question of exceptions. I'll probably have my csv-lines take a reader to avoid a similar problem

13:04the-kenny: Uhm.. I can't find resources/ in the classpath or any other property.. what does leiningen do with it?

13:07cemerick: cgrand: I've been slowly glomming up a "merge-page" transformer that does the right things when composing two separate full-document snippets (e.g. rooted at <html>), and want to be able to specify where body content should be pulled from. It looks like I need to (eval (compile-selector ...)) in order to take selector values as args.

13:38cgrand: cemerick: I try to understand the whole picture from your paste. So, what you are trying is to have a kind of pipeline, generating an html page and then transforming it. That's right?

13:40cemerick: cgrand: The fundamental objective is to have a way to compose a variety of pages together. In my case, right now, it's enough to have the pages merged in a reasonable way -- generally appending body content, appending or prepending head content. It's working pretty well so far, I just wanted to make sure I wasn't running afoul with the eval.

13:42cgrand: cemerick: given your requirements you can't skip the eval.

13:43cemerick: cgrand: OK. Should I take that to mean you think my requirements/approach are misguided? ;-)

13:49cgrand: cemerick: No I wouldn't dare to say that but it doesn't fit with the Enlive Way™ :-)

13:51cemerick: cgrand: huh -- I figured I was on the One True Path this whole time :-/

13:51cgrand: as you decompose a problem in smaller functions, a page should be decomposed in smaller snippets (which themselves can be decomposed etc.)

13:52cemerick: That's what I've done, but I guess I'm still groping around for an elegant way to reassemble the whole.

15:28kotarak: patrkris: hopefully well. Slowly working through the system. It starts taking shape.

15:28chouser: LauJensen: *file* is the file currently being evaluated. if you're at a repl and call a function that uses *file*, that file is no longer being evaluated, something at the repl is. thus NO_SOURCE

15:29chouser: however, when (this-file) is expanded, the macro's body is evaluated while the file that's using (this-file) is being evaluated, thus at the moment *file* is what you're expecting. this-file expands to the current value, a string, which then sits there in the compiled function until you need it.

15:30patrkris: kotarak: yeah... i thought that was what you were going to do - or wait for a 2.x release.

15:40hiredman: yeah, delay the move from some kind of abstract representation of a query on a dataset to a concrete query (as a string, or what have you) as long as possible

15:41kotarak: We delay until we know the connection type. Allows all sorts of emulations. Eg. FULL JOIN. etc. For SQL it will then go into a string first and then a PreparedStatement. For FleetDB it is "compiled" directly into a query: {:select :coll {:where ..}}.

16:06clojurebot: "([aseq] [type aseq]); Returns an array with components set to the values in aseq. The array's component type is type if provided, or the type of the first value in aseq if present, or Object. All values in aseq must be compatible with the component type. Class objects for the primitive types can be obtained using, e.g., Integer/TYPE."

17:01clojurebot: "clojure.contrib.pprint/pprint;[[object] [object writer]]; Pretty print object to the optional output writer. If the writer is not provided, print the object to the currently bound value of *out*."

22:43ts00000: if I have keys in a map, and I want to look up the "prices" for those keys in a separate map named prices, should I do it with something like (for [x (keys map)] [prices x])? and if so, why does this return two results rather than one?