Re: Mnesia like?

2009-06-16 Thread rb
On Jun 15, 6:02 pm, Wilson MacGyver wmacgy...@gmail.com wrote: Does clojure have anything like erlang's Mnesia? or is anyone working on such project? I know I can fall back to using JDBC+ various RDBMS, but I was curious if there is something that works like Mnesia. Depending on what you mean

Re: Mnesia like?

2009-06-16 Thread Wilson MacGyver
Sorry I wasn't very clear. What I meant was I didn't know if there was something that's tightly integrated and feels very native language-ish like Mnesia and erlang, but for clojure. It doesn't sound like such thing exist yet... On Tue, Jun 16, 2009 at 3:13 AM, rb raphi...@gmail.com wrote: On

Re: Runtime Compilation of Clojure from Android

2009-06-16 Thread rb
On Jun 16, 5:51 am, George Jahad andr...@blackbirdsystems.net wrote: Remco van't Veer has done a lot of great working porting Clojure to Android, but one thing remains missing, runtime compilation which would allow a fully functional Repl.  The problem is that the Android VM doesn't use

Re: Mnesia like?

2009-06-16 Thread Jonah Benton
Another schemaless db is mongo: http://www.mongodb.org It's written in c++, so it's out of process, but using the java driver is pretty natural: http://www.mongodb.org/display/DOCS/Java+Tutorial On Tue, Jun 16, 2009 at 3:24 AM, Wilson MacGyverwmacgy...@gmail.com wrote: Sorry I wasn't very

will clojure evolve to be able to do systems programming?

2009-06-16 Thread hari sujathan
thanks regards, Hari Sujathan --~--~-~--~~~---~--~~ 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

Re: Mnesia like?

2009-06-16 Thread Adrian Cuthbertson
There's also Berkeley DB Java Edition, now owned by Oracle (it has a GPL compatible license). It's an excellent, robust, embedded, fully transactional key-store db. See http://www.oracle.com/database/berkeley-db/je/index.html On Tue, Jun 16, 2009 at 3:26 PM, Jonah Bentonjo...@jonah.com wrote:

Re: Mnesia like?

2009-06-16 Thread Jason Warner
why would you throw up for suggesting couchdb? :) I rather like couchdb and some of its philosophies. One of my guys at work implemented a view server for couchdb in clojure...so...it isn't all bad ;) On Jun 15, 11:11 am, Daniel Lyons fus...@storytotell.org wrote: On Jun 15, 2009, at 10:02 AM,

Re: will clojure evolve to be able to do systems programming?

2009-06-16 Thread Sean Devlin
What exactly do you mean by systems programming? If you mean hardware stuff that's outside the scope of the JVM, then no, I doubt it. However, I am hard pressed to think of situations that you can code with Java SE (dunno about ME) that you can't handle with Clojure. Now that I think about it,

Re: No OO restrictions is good. why not still add dependency injection?

2009-06-16 Thread Jules
I still don't know what dependency injection means exactly. The examples I've seen that are said to use dependency injection can be solved by using first class functions. Are first class functions what you want? Jules On Jun 16, 12:09 pm, hari sujathan hari.sujat...@gmail.com wrote: Hi,    

Re: Runtime Compilation of Clojure from Android

2009-06-16 Thread George Jahad
On Jun 16, 3:15 am, Remco van 't Veer rwvtv...@gmail.com wrote: Cool!  Please share the code on github or whatever. working on it. I've been looking at reducing the memory footprint so I tend to consider including dex into your app as a bad thing.  But it would be really cool to do the

Re: No OO restrictions is good. why not still add dependency injection?

2009-06-16 Thread hari sujathan
hi Stuart, I was trying to look from some mathematical concepts by representing - OOP's inheritance by tree/graph structurtes(tree for single , and graph for multiple inheritence) with classes acting as each node. With functional programming - nodes are each block of code.. Dependency

Re: Runtime Compilation of Clojure from Android

2009-06-16 Thread George Jahad
I'm still cleaning up my changes. But with regards to the repl, I'm just using clojure.contrib.server-socket and invoking it like so from the :create routine: (create-repl-server 8030) (repl) On Jun 16, 12:28 am, rb raphi...@gmail.com wrote: On Jun 16, 5:51 am, George Jahad

Re: No OO restrictions is good. why not still add dependency injection?

2009-06-16 Thread Jeff Heon
I've seen dependency injection used in choosing an implementation for an interface with a configuration file i.e. without having to modify the code. I've only seen it used in component frameworks with lifecycle (a lifetime ago with Jakarta Avalon and now with Spring.) Currently we're using it

Re: No OO restrictions is good. why not still add dependency injection?

2009-06-16 Thread J. McConnell
On Tue, Jun 16, 2009 at 12:18 PM, hari sujathan hari.sujat...@gmail.com wrote: I was trying to look from some mathematical concepts by representing - OOP's inheritance by tree/graph structurtes(tree for single , and graph for multiple inheritence) with classes acting as  each node. With

Re: No OO restrictions is good. why not still add dependency injection?

2009-06-16 Thread Sean Devlin
Hari, First, I'd recommend you watch Rich's videos on Clojure, both for Java programmers and LISP programmers. In it Rich explains why Clojure *isn't* OO. It's heresy to some who has written lots of Java, but once you see Clojure in action, everything starts to make sense. I know when I went

Re: Mnesia like?

2009-06-16 Thread Jim Menard
On Tue, Jun 16, 2009 at 9:26 AM, Jonah Bentonjo...@jonah.com wrote: Another schemaless db is mongo: http://www.mongodb.org It's written in c++, so it's out of process, but using the java driver is pretty natural: http://www.mongodb.org/display/DOCS/Java+Tutorial See also Geir Magnusson

Re: will clojure evolve to be able to do systems programming?

2009-06-16 Thread tmountain
Due to the startup cost of the JVM, Clojure and Java probably aren't the best choices for tiny five to ten line utility scripts. That being said, Clojure works well for level stuff like bit twiddling, I/O, and socket programming. If you're in an environment where Java is available on your

Re: Mnesia like?

2009-06-16 Thread Jonah Benton
Ah, that looks very nice... On Tue, Jun 16, 2009 at 1:19 PM, Jim Menardjim.men...@gmail.com wrote: On Tue, Jun 16, 2009 at 9:26 AM, Jonah Bentonjo...@jonah.com wrote: Another schemaless db is mongo: http://www.mongodb.org It's written in c++, so it's out of process, but using the java

Re: will clojure evolve to be able to do systems programming?

2009-06-16 Thread Stuart Halloway
Would be interesting to combine Clojure with NailGun for utility scripting... http://sourceforge.net/projects/nailgun/ Due to the startup cost of the JVM, Clojure and Java probably aren't the best choices for tiny five to ten line utility scripts. That being said, Clojure works well for

Rebinding functions?

2009-06-16 Thread Michel Salim
It's currently not possible to dynamically rebind functions: (binding [+ -] (+ 5 3)) == 8 ;; not 2 Would this be supported in the future? It would make it easier, for example, to extend the current tracing functionality, e.g. (trace-in-expr [f1 f2] (f1 (f2 10))) == (let [oldf1 f1 oldf2 f2]

Re: Rebinding functions?

2009-06-16 Thread Paul Stadig
On Tue, Jun 16, 2009 at 1:38 PM, Michel Salim michel.syl...@gmail.comwrote: It's currently not possible to dynamically rebind functions: (binding [+ -] (+ 5 3)) == 8 ;; not 2 Thanks, -- Michel S. It is possible to rebind (even core) functions, but there are a couple of limitations. One

Shouldn't c.l.Namespace implement c.l.Named?

2009-06-16 Thread pmf
I've noticed that clojure.lang.Namespace cannot be used with the name- function (like (name *ns*)) because it does not implement clojure.lang.Named. One has to use (.getName *ns*), which is a bit ugly. --~--~-~--~~~---~--~~ You received this message because you are

Re: Rebinding functions?

2009-06-16 Thread Sean Devlin
Yes, people have shown examples on this list where (+ a b) is dramatically faster than (+ a b c) On Jun 16, 1:42 pm, Paul Stadig p...@stadig.name wrote: On Tue, Jun 16, 2009 at 1:38 PM, Michel Salim michel.syl...@gmail.comwrote: It's currently not possible to dynamically rebind

binding at the REPL

2009-06-16 Thread Stuart Halloway
This surprised me. What part of my mental model needs to be adjusted? :-) user= (def dozen 12) #'user/dozen user= (binding [dozen 13] dozen) 12 ; hunh? user= (#(binding [dozen 13] dozen)) 13 --~--~-~--~~~---~--~~ You received this message because you are

Re: Rebinding functions?

2009-06-16 Thread Michel S.
On Jun 16, 1:42 pm, Paul Stadig p...@stadig.name wrote: On Tue, Jun 16, 2009 at 1:38 PM, Michel Salim michel.syl...@gmail.comwrote: It's currently not possible to dynamically rebind functions: (binding [+ -] (+ 5 3)) == 8 ;; not 2 Thanks, -- Michel S. It is possible to rebind

Re: Rebinding functions?

2009-06-16 Thread Kevin Downey
you can use apply to avoid in-lining: user= (binding [+ -] (apply + '(5 3))) 2 On Tue, Jun 16, 2009 at 11:16 AM, Michel S.michel.syl...@gmail.com wrote: On Jun 16, 1:42 pm, Paul Stadig p...@stadig.name wrote: On Tue, Jun 16, 2009 at 1:38 PM, Michel Salim michel.syl...@gmail.comwrote:

Re: binding at the REPL

2009-06-16 Thread Sean Devlin
I use 1.0, btw. Tested both on OSX and Windows. On Jun 16, 2:19 pm, Mark Volkmann r.mark.volkm...@gmail.com wrote: On Tue, Jun 16, 2009 at 1:08 PM, Stuart Hallowaystuart.hallo...@gmail.com wrote: This surprised me. What part of my mental model needs to be adjusted? :-) user= (def

Re: binding at the REPL

2009-06-16 Thread Stuart Halloway
OK, just updated the repos. and this isn't happening anymore. Kind of a strange bug though. Rich, do you know why this happened (and did you explicitly fix it at some point?) Strange, I get the expected result, Clojure SVN revision 1382: user (def dozen 12) #'user/dozen user (binding

Re: Mnesia like?

2009-06-16 Thread Daniel Lyons
On Jun 16, 2009, at 8:05 AM, Jason Warner wrote: why would you throw up for suggesting couchdb? :) I rather like couchdb and some of its philosophies. One of my guys at work implemented a view server for couchdb in clojure...so...it isn't all bad ;) It doesn't have anything to do with

Re: binding at the REPL

2009-06-16 Thread Stuart Sierra
Strange, I get the expected result, Clojure SVN revision 1382: user (def dozen 12) #'user/dozen user (binding [dozen 13] dozen) 13 user (#(binding [dozen 13] dozen)) 13 user -the other Stuart On Jun 16, 2:08 pm, Stuart Halloway stuart.hallo...@gmail.com wrote: This surprised me. What part of

Re: Runtime Compilation of Clojure from Android

2009-06-16 Thread George Jahad
On Jun 16, 3:15 am, Remco van 't Veer rwvtv...@gmail.com wrote: Cool!  Please share the code on github or whatever. ok, I've forked your clojure tree and added my patches here: http://github.com/GeorgeJahad/clojure/tree/master The main changes are in Compiler.java, with a few in build.xml

Re: multimethods

2009-06-16 Thread Raoul Duke
If the issue is performance, then I understand that. But my vote as a user (not that anyone asked for my opinion!) is that I would rather have everything logically be a method and take a performance penalty. For me it's a consistency and simplicity over performance argument, although not

Re: Determining exceptions that can leak from a function

2009-06-16 Thread Jarkko Oranen
tsuraan wrote: Is there any way for me to tell what exceptions I'm not handling in a clojure function? javac will yell at me if I don't either handle or declare every possibility. I don't want the behaviour from clojure, but having something like *warn-on-reflection* or even a function to

Re: multimethods

2009-06-16 Thread CuppoJava
I agree that it would be nice to be able to treat all functions as methods. But performance is also a key feature of Clojure that attracts a large percentage of its users, myself included. The initial reason I chose Clojure over Python, or Ruby, or any other scripting language was its exceptional

Re: multimethods

2009-06-16 Thread Raoul Duke
I agree that it would be nice to be able to treat all functions as methods. But performance is also a key feature of Clojure that attracts a large percentage of its users, myself included. The initial reason I chose Clojure over Python, or Ruby, or any other scripting language was its

Re: Clojure goes Git!

2009-06-16 Thread Mark Volkmann
On Tue, Jun 16, 2009 at 7:17 PM, Rich Hickey richhic...@gmail.com wrote: Clojure and contrib repos are now on GitHub: http://github.com/richhickey/clojure http://github.com/richhickey/clojure-contrib In particular, please don't send pull requests via GitHub at this time. What's the

Re: Clojure goes Git!

2009-06-16 Thread Antony Blakey
On 17/06/2009, at 10:29 AM, Mark Volkmann wrote: On Tue, Jun 16, 2009 at 7:17 PM, Rich Hickey richhic...@gmail.com wrote: Clojure and contrib repos are now on GitHub: http://github.com/richhickey/clojure http://github.com/richhickey/clojure-contrib In particular, please don't send

Re: Clojure goes Git!

2009-06-16 Thread Mark Volkmann
On Tue, Jun 16, 2009 at 8:04 PM, Antony Blakey antony.bla...@gmail.comwrote: On 17/06/2009, at 10:29 AM, Mark Volkmann wrote: On Tue, Jun 16, 2009 at 7:17 PM, Rich Hickey richhic...@gmail.com wrote: Clojure and contrib repos are now on GitHub: http://github.com/richhickey/clojure

Re: Clojure goes Git!

2009-06-16 Thread Antoni Batchelli
Awesome news! :) Git has a rather steep learning curve, but it pays to invest time on it (or on any other distributed SCM). For learning Git I found Git Magic ( http://www-cs-students.stanford.edu/~blynn/gitmagic/ ) to be very helpful, and Git Internals (

Re: Clojure goes Git!

2009-06-16 Thread Antoni Batchelli
I believe that sending a pull request, in this case, means asking someone at the master repository to pull a changes from, for example, your own local repository. Toni. On Jun 16, 2009, at 6:07 PM, Mark Volkmann wrote: On Tue, Jun 16, 2009 at 8:04 PM, Antony Blakey antony.bla...@gmail.com

Re: Clojure goes Git!

2009-06-16 Thread Mark Derricutt
My impression is that a git push is you submitting the changes to the remote repo, but a git pull *request* is asking Rich to review/pull your changes. If github land, this would involve Rich looking at his fork queue in the GUI and going accept accept accept, or doing a command line git pull.

Re: Clojure goes Git!

2009-06-16 Thread Antony Blakey
On 17/06/2009, at 10:37 AM, Mark Volkmann wrote: I think you've got that backwards. A git push is how I would ask the remote repo to accept my changes. A git pull says I want to update my local repo with changes someone made in the remote repo. No, you can send a *request* to Rich, via

Re: Rebinding functions?

2009-06-16 Thread Michel Salim
On Jun 16, 2:22 pm, Kevin Downey redc...@gmail.com wrote: you can use apply to avoid in-lining: user= (binding [+ -] (apply + '(5 3))) 2 Indeed; this is what my macro ended up doing anyway, since it has to work regardless of the arity of the functions to trace. -- Michel

Re: Rebinding functions?

2009-06-16 Thread CuppoJava
This post worries me. I've considered rewriting functions as inlining-macros for optimization purposes. But I thought it would be a transparent change. This post shows that it's not a transparent change, and could potentially lead to some very odd looking bugs. What if I wanted to optimize

accum

2009-06-16 Thread Wrexsoul
I'm shocked that this is missing from clojure.core: (defn accum [f init coll] (loop [x init c coll] (if (empty? c) x (recur (f x (first c)) (rest c) user= (accum + 0 [1 2 3]) 6 user= (accum + 0 [1 2 3 4 5]) 15 This is one of the most basic, useful functions in functional

Re: accum

2009-06-16 Thread Wrexsoul
On Jun 17, 12:57 am, Sean Devlin francoisdev...@gmail.com wrote: Daniel, don't feed the WrexTroll Personal attacks are unwelcome here. Indeed! It's called reduce: http://clojure.org/api#toc476 I'm shocked you haven't noticed it in the API documentation. I SPECIFICALLY did a search of

Re: Clojure goes Git!

2009-06-16 Thread Wrexsoul
On Jun 16, 10:43 pm, Richard Newman holyg...@gmail.com wrote: The docs produced by the Git project aren't proprietary: there are   plenty at [1], not to mention `man git`. I just see a great deal of   value in clear, explanatory text Enough value that there should be free clear, explanatory

Re: multimethods

2009-06-16 Thread Konrad Hinsen
On 17.06.2009, at 00:20, Chris Dean wrote: To put it another way, why have the dichotomy between multimethods and plain functions at all? Performance is one reason, as has been discussed already. But for many of Clojure's plain functions, it is not clear what their dispatch function

Re: Clojure goes Git!

2009-06-16 Thread Richard Newman
Clojure and contrib repos are now on GitHub: http://github.com/richhickey/clojure http://github.com/richhickey/clojure-contrib A big thumbs-up on this: I've already started extending the contrib test suite (starting with clojure.set) in my own fork, which would be a much more painful