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
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
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
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
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
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:
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,
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,
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,
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
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
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
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
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
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
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
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
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
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
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]
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
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
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
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
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
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:
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
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
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
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
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
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
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
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
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
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
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
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
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 (
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
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.
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
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
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
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
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
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
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
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
49 matches
Mail list logo