Re: Risks of (over-)using destructuring?

2009-07-24 Thread Meikel Brandmeyer
Hi, On Jul 24, 7:56 am, Laurent PETIT laurent.pe...@gmail.com wrote: Here is an example from clojure-contrib where Chouser uses explicit use of :arglists to fine-tune the public API signature of macro deferror: Note, that this is also useful for multimethods, since they don't have an

Re: Bitfields access in Clojure

2009-07-24 Thread Michael Wood
2009/7/22 Meikel Brandmeyer m...@kotka.de: Hi, Am 22.07.2009 um 18:42 schrieb Paul Mooser: Is it safe to assume that you can extract the key ordering from the literal map the user specified ? Or am I misunderstanding ? Up to eight elements in a literal map are stored as array-map. An

Re: sizeof in Clojure

2009-07-24 Thread Jan Rychter
On Jul 21, 5:51 am, Jan Rychter j...@rychter.com wrote: Is there a way to get the size of a data structure in Clojure? I've been wondering how much more space-efficient vectors are than lists, but I don't know how to measure it. Stuart Sierra the.stuart.sie...@gmail.com writes: Short

Re: Risks of (over-)using destructuring?

2009-07-24 Thread pcda...@gmail.com
On Jul 24, 12:23 am, Jeremy Gailor jer...@infinitecube.com wrote: Hi David, I would say that this is a problem in any programming language that makes use of an external library.  If the public API of a library changes, you're going to need to update the code that acts as a consumer of that

Re: Risks of (over-)using destructuring?

2009-07-24 Thread Artyom Shalkhakov
Hello, I've been reading this list for a while. Suppose it's time to delurk. :-) On Thu, Jul 23, 2009 at 10:58 AM, pcda...@gmail.com pcda...@gmail.comwrote: The kind of scenario I'm worrying about is this: - Alice writes library foo and use a particular way to encode values (say simple

Re: Risks of (over-)using destructuring?

2009-07-24 Thread pcda...@gmail.com
On Jul 23, 10:15 pm, Richard Newman holyg...@gmail.com wrote: Coming from an OO background which puts a strong focus on data   encapsulation, this makes me a little nervous. The same problem exists with OO. Not to the same extent, unless you expose all the internals of your classes

Re: Bitfields access in Clojure

2009-07-24 Thread Daniel Janus
Up to eight elements in a literal map are stored as array-map. An array-map keeps the key ordering. For more elements the map becomes a hash-map, which does not keep the key ordering. I assume that's an implementation detail that one could not rely on, though, right? Yeah, I guess

Re: Memory Problem

2009-07-24 Thread Dragan Djuric
Sometimes (or maybe always?) it is mentioned in the doc. In my opinion, this is one of the cases where dynamic languages do not excel. If we had typing, that would be solved by implementing Lazy interface. Or maybe this is an use case for metadata? Each function could have a tag :lazy? with

Re: sizeof in Clojure

2009-07-24 Thread Rich Hickey
On Fri, Jul 24, 2009 at 5:04 AM, Jan Rychterj...@rychter.com wrote: On Jul 21, 5:51 am, Jan Rychter j...@rychter.com wrote: Is there a way to get the size of a data structure in Clojure? I've been wondering how much more space-efficient vectors are than lists, but I don't know how to

Re: Risks of (over-)using destructuring?

2009-07-24 Thread Laurent PETIT
Hi, 2009/7/24 pcda...@gmail.com pcda...@gmail.com On Jul 23, 10:15 pm, Richard Newman holyg...@gmail.com wrote: Coming from an OO background which puts a strong focus on data encapsulation, this makes me a little nervous. The same problem exists with OO. Not to the same extent,

Re: Risks of (over-)using destructuring?

2009-07-24 Thread Meikel Brandmeyer
Hi, On Jul 24, 2:03 pm, Laurent PETIT laurent.pe...@gmail.com wrote: But you should consider that everything you cannot find in the (doc) of functions is not public API. +1 And if you don't care for docstrings... Well. It's your software which blows up, not mine. If there is something

Re: Memory Problem

2009-07-24 Thread Meikel Brandmeyer
Hi, Everything returning a seq is lazy: take, drop, iterate, map, ... Everything (maybe) returning something else is not: reduce, loop, ... Not 100% accurate, but this heuristic should get you very far. Sincerely Meikel --~--~-~--~~~---~--~~ You received this

Re: Memory Problem

2009-07-24 Thread eyeris
On Jul 24, 6:17 am, Dragan Djuric draga...@gmail.com wrote: Sometimes (or maybe always?) it is mentioned in the doc. In my opinion, this is one of the cases where dynamic languages do not excel. If we had typing, that would be solved by implementing Lazy interface. We do have types and we do

OutOfMemoryError using coljure.contrib.duck-streams

2009-07-24 Thread Alexander Stoddard
I am a very new clojure user but I believe I have found a bug when using the clojure.contrib.duck-streams library. My attempt to stream process a very big file blows up with java.lang.OutOfMemoryError: Java heap space. I can reproduce the problem with the following simple code which I think

Re: Where Is Documentation for Compiling Clojure Files from the Command Line Using Something Like javac?

2009-07-24 Thread Stuart Sierra
On Jul 24, 10:30 am, Deklan diete...@gmail.com wrote: I have scoured the online documentation for instructions on how to compile clojure source files from the command line. It's not often used, but you can run the class clojure.lang.Compile. You have to set the Java system property

Re: OutOfMemoryError using coljure.contrib.duck-streams

2009-07-24 Thread Stuart Sierra
I'm afraid I can't reproduce this error, Alexander. I can run (write-lines /tmp/out (line-seq (reader /tmp/bigfile))) on a 4.5 GB file with no problem, and I don't have that much memory. Out-of-memory errors like this usually occur when your code is holding on to the head of the sequence.

Re: Uncle Bob: bowling meets Clojure

2009-07-24 Thread russellc
FWIW (i.e. IMO the previous two functional solutions are better examples) here is a more imperative style solution done sort of to prove to myself that I could do such a thing in Clojure w/o too much (arguable) fanfare. Maybe it will be interesting to others who are learning Clojure too (defn

Re: OutOfMemoryError using coljure.contrib.duck-streams

2009-07-24 Thread Stuart Sierra
I should admit that there may be something else I'm missing here. write-lines is not a lazy sequence function, so it may be responsible for holding the head of the sequence. I can't reproduce the error, though. -SS On Jul 24, 11:29 am, Stuart Sierra the.stuart.sie...@gmail.com wrote: I'm

Re: Memory Problem

2009-07-24 Thread Dragan Djuric
Is there an automatic way to discover such error? These types of errors could be discovered by the compiler. How am I going to see if I get an ISeq in my clojure code? I would have to dig... On Jul 24, 3:37 pm, eyeris drewpvo...@gmail.com wrote: On Jul 24, 6:17 am, Dragan Djuric

Function overriding? Way to do it, similar to in Java

2009-07-24 Thread BerlinBrown
Are there ways to override functions so that if you have different parameters, you get different logic? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to

Re: Function overriding? Way to do it, similar to in Java

2009-07-24 Thread Kevin Downey
yes there is a way: http://clojure.org/multimethods On Fri, Jul 24, 2009 at 11:44 AM, BerlinBrownberlin.br...@gmail.com wrote: Are there ways to override functions so that if you have different parameters, you get different logic? -- And what is good, Phaedrus, And what is not good—

How to write performant functions in clojure (and other functional languages)

2009-07-24 Thread Jeremy Gailor
I'm pretty familiar with scheme programming, so functional programming isn't new to me, but I rarely turn to it for solving problems during my day to day work. In learning Clojure, I've been going through problems on project euler, and one question I have is that while it's straigh-forward to

Re: Function overriding? Way to do it, similar to in Java

2009-07-24 Thread Richard Newman
yes there is a way: http://clojure.org/multimethods And also plain ol' arity overriding: (defn foo Do something. ([x] (println x)) ([x y] (println (+ x y For something similar to Java, where a particular method is selected purely on the type of the arguments, a multimethod

Re: How to write performant functions in clojure (and other functional languages)

2009-07-24 Thread Daniel Lyons
Jeremy, On Jul 24, 1:20 pm, Jeremy Gailor jer...@infinitecube.com wrote: I'm just looking for general optimizations that I should be aware of, the nature of the function itself isn't really important.  I could turn to number theory to get some performance improvement, but from a Clojure

Re: Memory Problem

2009-07-24 Thread eyeris
Passing a collection to a function that expects a lazy seq is not always an error. The seq library encourages it by calling (seq) on those collections for you. I suppose all lazy functions could emit a warning when they have to call (seq) on their arguments, based on some global variable like

Keyword not serializable

2009-07-24 Thread Chris Kent
Hi Are there any fundamental reasons why the Keyword class shouldn't be serializable? I've been playing around with Clojure and Wicket and it's not possible to use maps containing Keywords in Wicket page classes. Wicket pages are serialized and stored in the session between requests and this

Re: Risks of (over-)using destructuring?

2009-07-24 Thread jan
Laurent PETIT laurent.pe...@gmail.com writes: 2009/7/24 pcda...@gmail.com pcda...@gmail.com On Jul 23, 10:15 pm, Richard Newman holyg...@gmail.com wrote: Coming from an OO background which puts a strong focus on data   encapsulation, this makes me a little nervous.

Re: Memory Problem

2009-07-24 Thread Dragan Djuric
Well, that's what I am talking about. It can be controlled, but it requires good grasp of all the concepts and high concentration + there is still a chance to miss something. Now it may not be such a problem since the majority of people who use clojure are usually highly motivated enthusiasts,