defmethod/defmulti should dispatch on the new arguments when we call the recur..?

2010-12-18 Thread Sunil S Nandihalli
Hello everybody,
 It would be nice if calling recur inside a defmethod redispatched on the
new arguments.. I have shown a simple use-case in the following gist.
https://gist.github.com/747171

It might be naive .. but I feel IMHO that this should be the default
behaviour and not have any performance issues related to it..


Thanks,
Sunil

-- 
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: Dispatch on return type?

2010-12-18 Thread Tim Daly

 Axiom, a computer algebra system I maintain,
can dispatch on return type. I am looking at
the things Clojure can do that might support
the Spad language (the mathematical language
in Axiom). I could not find a way to adjust
the multimethod to dispatch on return type.

On 12/18/2010 6:41 PM, Meikel Brandmeyer wrote:

Hi,

Am 19.12.2010 um 00:07 schrieb Tim Daly:


Is it possible to dispatch based on the return type/value?

That is, can I write a multimethods dispatch to distinguish

+(float,float) ->  float
+(float,float) ->  int

(defmulti + (fn [x y ret] (vector (type x) (type y) ret))

(defmethod + [Float Float Float]
   ...)

(defmethod + [Float Float Integer]
   ...)

(+ 1.0 2.0 Integer)
(+ 1.0 2.0 Float)

This poses the question: Why do you need that? And: Is Clojure is the right 
tool for this job? This sounds more like Haskell.

Sincerely
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: Logos v0.2: or Life w/o Tail Call Optimization

2010-12-18 Thread jim
David,

I started looking at Logos tonight. Really nice. I like the way its
heading. Looking forward to using it.

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: Clojure in Maxine

2010-12-18 Thread jim
Don't know fully yet. But I've been reading about the C1X compiler.
That's the client java compiler and they've ported the C version to
java and added a few twists. From reading the papers, it sounds like
it would be fun to implement it in Clojure. So I may try to do that.
Then see where things lead.

Jim

On Dec 18, 6:00 pm, George Jahad  wrote:
> what were you thinking of doing with maxine?

-- 
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: Getting body of HTTP POST in Compojure

2010-12-18 Thread James Reeves
On 19 December 2010 02:58, Miki  wrote:
>> What's the content-type of the POST? If it's
>> "application/x-www-form-urlencoded", then the body stream will be
>> automatically parsed into a map of parameters, thus consuming the
>> stream.
>
> The content-type is application/www-form-urlencoded but the body is not a
> form, just a JSON object.
> Is there way to tell Comojure not to do this magic?

The easiest way around it is to write some middleware to correct the
content-type:

(defn wrap-correct-content-type [handler]
  (fn [request]
(handler (assoc request :content-type "application/json"

This middleware would have to wrap the routes you expect to receive
incorrectly typed requests.

But, if you can, it would make more sense to fix this at the client.
Anything else is just a hack.

- James

-- 
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: Getting body of HTTP POST in Compojure

2010-12-18 Thread Miki


> What's the content-type of the POST? If it's
> "application/x-www-form-urlencoded", then the body stream will be
> automatically parsed into a map of parameters, thus consuming the
> stream.

The content-type is application/www-form-urlencoded but the body is not a 
form, just a JSON object.
Is there way to tell Comojure not to do this magic?

Thanks,
--
Miki

-- 
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: Getting body of HTTP POST in Compojure

2010-12-18 Thread James Reeves
What's the content-type of the POST? If it's
"application/x-www-form-urlencoded", then the body stream will be
automatically parsed into a map of parameters, thus consuming the
stream.

- James

On 19 December 2010 02:30, Miki  wrote:
> Greetings,
>
> I'm trying to get the body of HTTP POST in Compojure (0.5.3).
>
> I have the following code:
>   (defn handle-post [body]
>     (log/info (.read body))
>     "OK")
>
>   (defroutes tropo-routes
>     (GET "/" [] (welcome-page))
>     (POST "/post" {body :body} (handle-post body))
>     (route/not-found "Sorry, can't find it."))
>
> When I send the server a POST request, -1 is logged (which means not input
> available).
>
> Any ideas how to do it right?
>
> Thanks,
> --
> Miki
>
> --
> 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: HTML5 Validator

2010-12-18 Thread Miki


>
> I'd like to unit test my html output for well-formedness.  What's an 
> easy way to test it for HTML5 validity?  Are there good Clojure libs 
> for this?  I only need to check for validity, not parse. 
>
> Not sure, but maybe you can use htmlunit?

All the best,
--
Miki 

-- 
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

Getting body of HTTP POST in Compojure

2010-12-18 Thread Miki
Greetings,

I'm trying to get the body of HTTP POST in Compojure (0.5.3). 

I have the following code:
  (defn handle-post [body]
(log/info (.read body))
"OK")

  (defroutes tropo-routes
(GET "/" [] (welcome-page))
(POST "/post" {body :body} (handle-post body))
(route/not-found "Sorry, can't find it."))

When I send the server a POST request, -1 is logged (which means not input 
available).

Any ideas how to do it right?

Thanks,
--
Miki

-- 
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: replace first n items in sequence

2010-12-18 Thread Alan
I feel similarly: always use a built-in if there is one, even for
something as simple as this. I couldn't find one either, and my
solution is basically the same as Benny's, but there's no particular
need to (let) the count, and once that's removed it's so short it
almost doesn't merit a defn anymore:

(let [a '(1 2 3 4 5 6 7 8 9 10)
b '(54 666 23)]
(concat b (drop (count b) a)))
=> (54 666 23 4 5 6 7 8 9 10)

On Dec 18, 2:32 pm, Glen Rubin  wrote:
> ok that's looks very succinct, I will use it.  Just figured I would
> ask if it exists, b/c always prefer to use a built-in and it sounded
> basic enough to be.  thanks!
>
> On Dec 18, 5:15 pm, Benny Tsai  wrote:
>
> > I didn't see a built-in fn for this, and couldn't restrain myself from
> > trying to write one:
>
> > (defn replace-first-n [xs ys]
> >   (let [n (count ys)]
> >     (concat ys (drop n xs
>
> > On Dec 18, 2:38 pm, Glen Rubin  wrote:
>
> > > I am looking for a fn that does the following.  Let's say i have
> > > sequences A & B
>
> > > A:  '(1 2 3 4 5 6 7 8 9 10)
>
> > > B '(54 666 23)
>
> > > I want to replace A's first items with B's, so that I get:
>
> > > '(54 666 23 4 5 6 7 8 9 10)
>
> > > Is there a fn to do this?  Otherwise, I will write one.  Thanks!

-- 
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: HTML5 Validator

2010-12-18 Thread Mike Meyer
[Going ever further off topic]

On Sat, 18 Dec 2010 20:52:09 -0500
John Sanda  wrote:
> On Sat, Dec 18, 2010 at 3:10 PM, Alyssa Kwan wrote:
> > I'd like to unit test my html output for well-formedness.  What's an
> > easy way to test it for HTML5 validity?  Are there good Clojure libs
> > for this?  I only need to check for validity, not parse.
> You might want to a look at http://xmlunit.sourceforge.net/. I've neither
> used it with Clojure nor for HTML validation, but I have used a good bit for
> general purpose XML validation. I was pretty happy with it.

That (well, something like it) was my initial thought. But there's no
schema/DTD for HTML5, so you can't use a traditional validator like
the Validator class to get even that much of a check.

For that matter, HTML5 includes things that can't be expressed in
SGML, much less XML. The spec explicitly states that a conformance
checker that just does a DTD-based validation is not a conforming
conformance checker according to the specification.

This may be why there's no DTD yet: the spec is under development, so
providing a DTD would just encourage people to use DTD-based
validators instead of writing the custom code required to properly
check conformance. Hopefully, when it's finished they'll publish a
DTD, so conformance checkers can be written that assume a valid
document.

 http://www.mired.org/consulting.html
Independent Network/Unix/Perforce consultant, email for more information.

O< ascii ribbon campaign - stop html mail - www.asciiribbon.org

-- 
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: HTML5 Validator

2010-12-18 Thread John Sanda
On Sat, Dec 18, 2010 at 3:10 PM, Alyssa Kwan wrote:

> Hi!
>
> I'd like to unit test my html output for well-formedness.  What's an
> easy way to test it for HTML5 validity?  Are there good Clojure libs
> for this?  I only need to check for validity, not parse.
>
> Thanks!
> Alyssa
>
> --
>

You might want to a look at http://xmlunit.sourceforge.net/. I've neither
used it with Clojure nor for HTML validation, but I have used a good bit for
general purpose XML validation. I was pretty happy with it.

- John

-- 
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: Free Compojure Hosting? (or mostly free)

2010-12-18 Thread javajosh


On Dec 18, 9:55 am, Alex Baranosky 
wrote:

> Is there a similar free service to use with Compojure?  If not free, then
> what are the cheap options?

A little googling revealed that Google App Engine will work:

  http://www.infoq.com/articles/deadline-clojure-appengine

Freiheit was kind enough to post a how-to on setting up the GAE dev
environment here:

  
http://www.hackers-with-attitude.com/2009/08/intertactive-programming-with-clojure.html

Hope this helps,
Josh

-- 
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: about the repl

2010-12-18 Thread Robert McIntyre
That's really cool and has been added to my standard system stuff :)

--Robert McIntyre

On Sat, Dec 18, 2010 at 6:46 PM, Alex Osborne  wrote:
> Stuart Sierra  writes:
>
>> If your REPL implementation runs each command in a new Thread (as most
>> of them do, I think) it can just stop the thread.  That won't work in
>> every situation (for example, a thread blocked waiting for I/O) but it
>> will get you out of an infinite sequence.
>
> For just a plain command-line REPL on unix you can try running this
> before going into your infinite loop.  Of course if something captures
> the ThreadDeath exception then it's not going to work.
>
>  (sun.misc.Signal/handle
>   (sun.misc.Signal. "INT")
>   (let [t (Thread/currentThread)]
>    (proxy [sun.misc.SignalHandler] []
>      (handle [sig] (.stop t)
>
> Here's what it looks like when you hit Ctrl+C:
>
>  user=> (while true)
>  ^Cjava.lang.ThreadDeath (NO_SOURCE_FILE:0)
>  user=>
>
> Under Emacs/Slime you can achieve the same thing by hitting C-c C-b
> (or M-x slime-interrupt).
>
> --
> 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: HTML5 Validator

2010-12-18 Thread Jeff Valk
On Saturday, December 18, 2010 at 02:10 pm, Alyssa Kwan wrote:
> 
> I'd like to unit test my html output for well-formedness.  What's an
> easy way to test it for HTML5 validity?  Are there good Clojure libs
> for this?  I only need to check for validity, not parse.

I'm not aware of a native clojure html validator. That said, the first thing 
that comes to mind is to use something like clj-http [1] to post your markup to 
the w3c validator [2]. If you're doing this often, or offline, you could run 
the validator locally [3].

As a bonus, this method would get you validation for css, rss/atom, etc with 
miminal extra effort. Perhaps you've already considered this, but I figured I'd 
toss it out there anyway. Good luck!

- Jeff

[1] https://github.com/clj-sys/clj-http
[2] http://validator.w3.org/#validate_by_input
[3] http://validator.w3.org/docs/install.html 
(also in the debian/ubuntu repos as "w3c-markup-validator")

-- 
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 in Maxine

2010-12-18 Thread George Jahad
what were you thinking of doing with maxine?

On Dec 18, 1:46 pm, jim  wrote:
> Just got a Clojure REPL using the Maxine VM. It worked the first time!
> Here's the command I used.
>
> ~/maxine/bin/max vm -cp clojure-1.2.0/clojure.jar clojure.main
>
> http://wikis.sun.com/display/MaxineVM/Home

-- 
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: about the repl

2010-12-18 Thread Alex Osborne
Stuart Sierra  writes:

> If your REPL implementation runs each command in a new Thread (as most
> of them do, I think) it can just stop the thread.  That won't work in
> every situation (for example, a thread blocked waiting for I/O) but it
> will get you out of an infinite sequence. 

For just a plain command-line REPL on unix you can try running this
before going into your infinite loop.  Of course if something captures
the ThreadDeath exception then it's not going to work.

  (sun.misc.Signal/handle
   (sun.misc.Signal. "INT")
   (let [t (Thread/currentThread)]
(proxy [sun.misc.SignalHandler] []
  (handle [sig] (.stop t)
  
Here's what it looks like when you hit Ctrl+C:

  user=> (while true)
  ^Cjava.lang.ThreadDeath (NO_SOURCE_FILE:0)
  user=> 

Under Emacs/Slime you can achieve the same thing by hitting C-c C-b 
(or M-x slime-interrupt).

-- 
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: Dispatch on return type?

2010-12-18 Thread Meikel Brandmeyer
Hi,

Am 19.12.2010 um 00:07 schrieb Tim Daly:

> Is it possible to dispatch based on the return type/value?
> 
> That is, can I write a multimethods dispatch to distinguish
> 
> +(float,float) -> float
> +(float,float) -> int

(defmulti + (fn [x y ret] (vector (type x) (type y) ret))

(defmethod + [Float Float Float]
  ...)

(defmethod + [Float Float Integer]
  ...)

(+ 1.0 2.0 Integer)
(+ 1.0 2.0 Float)

This poses the question: Why do you need that? And: Is Clojure is the right 
tool for this job? This sounds more like Haskell.

Sincerely
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: Waiting for agents

2010-12-18 Thread Rosko
You can read a 4 page PDF:
tug.org/TUGboat/tb31-2/tb98knut.pdf

first thing I would check is the date. I think it might be April 1.

On Dec 18, 12:43 pm, Robert McIntyre  wrote:
> That's brilliant.   Has anyone considered targeting clojure for
> LaTeX3?    Numerical support for one would be simplified, since LaTeX3
> just uses actual rational numbers as its default instead longs or ints
> or whatever.
>
> This could be big, guys!
>
> --Robert McIntyre
>
>
>
> On Sat, Dec 18, 2010 at 12:19 PM, Ken Wesson  wrote:
> > On Sat, Dec 18, 2010 at 11:38 AM, Daniel Werner
> >  wrote:
> >> On 18 December 2010 16:29, Ken Wesson  wrote:
> >>> "Once Java 7 is out" is starting to seem like "once LaTeX3 is out" or
>
> >> Oh, you haven't heard the news yet? LaTeX3 has already been superseded 
> >> anyway:
>
> >>http://river-valley.tv/tug-2010/an-earthshaking-announcement
>
> > Are you crazy? I'm not watching a 34-minute video to find out what can
> > surely be explained in a page or two of text that will take me two
> > minutes to read.
>
> > For the most part the online video revolution seems to be a good
> > thing. But when long videos substitute for short text or HTML
> > documents then there is a problem.
>
> > --
> > 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


Dispatch on return type?

2010-12-18 Thread Tim Daly

 Is it possible to dispatch based on the return type/value?

That is, can I write a multimethods dispatch to distinguish

+(float,float) -> float
+(float,float) -> int

Tim Daly

--
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: replace first n items in sequence

2010-12-18 Thread Benny Tsai
No problem :)  I prefer built-in's as well, but I couldn't find
anything.  Maybe someone else will have better luck...

On Dec 18, 3:32 pm, Glen Rubin  wrote:
> ok that's looks very succinct, I will use it.  Just figured I would
> ask if it exists, b/c always prefer to use a built-in and it sounded
> basic enough to be.  thanks!
>
> On Dec 18, 5:15 pm, Benny Tsai  wrote:
>
>
>
>
>
>
>
> > I didn't see a built-in fn for this, and couldn't restrain myself from
> > trying to write one:
>
> > (defn replace-first-n [xs ys]
> >   (let [n (count ys)]
> >     (concat ys (drop n xs
>
> > On Dec 18, 2:38 pm, Glen Rubin  wrote:
>
> > > I am looking for a fn that does the following.  Let's say i have
> > > sequences A & B
>
> > > A:  '(1 2 3 4 5 6 7 8 9 10)
>
> > > B '(54 666 23)
>
> > > I want to replace A's first items with B's, so that I get:
>
> > > '(54 666 23 4 5 6 7 8 9 10)
>
> > > Is there a fn to do this?  Otherwise, I will write one.  Thanks!

-- 
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: replace first n items in sequence

2010-12-18 Thread Glen Rubin
ok that's looks very succinct, I will use it.  Just figured I would
ask if it exists, b/c always prefer to use a built-in and it sounded
basic enough to be.  thanks!

On Dec 18, 5:15 pm, Benny Tsai  wrote:
> I didn't see a built-in fn for this, and couldn't restrain myself from
> trying to write one:
>
> (defn replace-first-n [xs ys]
>   (let [n (count ys)]
>     (concat ys (drop n xs
>
> On Dec 18, 2:38 pm, Glen Rubin  wrote:
>
>
>
>
>
>
>
> > I am looking for a fn that does the following.  Let's say i have
> > sequences A & B
>
> > A:  '(1 2 3 4 5 6 7 8 9 10)
>
> > B '(54 666 23)
>
> > I want to replace A's first items with B's, so that I get:
>
> > '(54 666 23 4 5 6 7 8 9 10)
>
> > Is there a fn to do this?  Otherwise, I will write one.  Thanks!

-- 
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: replace first n items in sequence

2010-12-18 Thread Benny Tsai
I didn't see a built-in fn for this, and couldn't restrain myself from
trying to write one:

(defn replace-first-n [xs ys]
  (let [n (count ys)]
(concat ys (drop n xs

On Dec 18, 2:38 pm, Glen Rubin  wrote:
> I am looking for a fn that does the following.  Let's say i have
> sequences A & B
>
> A:  '(1 2 3 4 5 6 7 8 9 10)
>
> B '(54 666 23)
>
> I want to replace A's first items with B's, so that I get:
>
> '(54 666 23 4 5 6 7 8 9 10)
>
> Is there a fn to do this?  Otherwise, I will write one.  Thanks!

-- 
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: currying in clojure for fixed number of arg functions

2010-12-18 Thread Benny Tsai
This is very cool!

Taken together with the following projects, Clojure now has some of
the nicest parts of Haskell/ML, IMHO :)

Matchure (pattern matching):
http://spin.atomicobject.com/2010/04/25/matchure-serious-clojure-pattern-matching

Algebraic Data Types:
http://clojure.github.com/clojure-contrib/types-api.html

On Dec 17, 7:00 pm, Sunil S Nandihalli 
wrote:
> On Sat, Dec 18, 2010 at 7:21 AM, Sunil S Nandihalli <
>
>
>
>
>
>
>
>
>
> sunil.nandiha...@gmail.com> wrote:
> > Hi Eric,
> >  I do know about partial. But what I am saying is that the extra function,
> > partial, is not necessary if the function was created with
> > def-curry-fn... The function automatically returns a curried version
> > when called with fewer number of arguments than necessary like it
> > happens in haskell..
> > thanks,
> > Sunil.
>
> > On Sat, Dec 18, 2010 at 3:02 AM, Eric Schulte wrote:
>
> >> Hi Sunil,
>
> >> This is already possible using `partial' function in clojure core, which
> >> also works for variable arity functions, e.g.
>
> >> (map (partial reduce +) [[1 2 3 4] [5 6 7 8]])
>
> >> Best -- Eric
>
> >> Sunil S Nandihalli  writes:
>
> >> > Hello everybody,
> >> >  I remember that the key reasoning for not supporting currying in
> >> clojure
> >> > was to be able to have variable number of arg functions.. So, I just
> >> thought
> >> > a bit and realized that it should be possible to do that for fixed arity
> >> > functions .. and then wrote the following macro to define a curry-able
> >> > fixed-number-of-argument-function
>
> >> >https://gist.github.com/745654
>
> > If the following was defined as
>
> (defn f [a b c d]
>   (+ a b c d))
>
> >  > (def-curry-fn f [a b c d]
> >> >   (+ a b c d))
>
> >> > ((f 1) 2 3 4)  => 10
>
> > the above s-expression using partial would become ...
>
> ((partial f 1) 2 3 4) => 10
>
> >  > (((f 1 2) 3) 4) => 10
>
> and ((partial (partial f 1 2) 3) 4) => 10 instead of (((f 1 2) 3) 4)..
>
> f 1) 2) 3) 4) => 10
> would become
> ((partial (partial (partial f 1) 2) 3) 4) => 10 .
>
> I know there is no real practical utility .. .. it was just something I
> wrote for fun.. and thought of sharing it ...
> Sunil.
>
>
>
>
>
>
>
>
>
> >> > I just thought of sharing it with everybody. Would love to hear any
> >> > criticisms you may have.
>
> >> > Thanks for reading,
> >> > Sunil
>
> >> --
> >> 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


Clojure in Maxine

2010-12-18 Thread jim
Just got a Clojure REPL using the Maxine VM. It worked the first time!
Here's the command I used.

~/maxine/bin/max vm -cp clojure-1.2.0/clojure.jar clojure.main

http://wikis.sun.com/display/MaxineVM/Home

-- 
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


replace first n items in sequence

2010-12-18 Thread Glen Rubin
I am looking for a fn that does the following.  Let's say i have
sequences A & B

A:  '(1 2 3 4 5 6 7 8 9 10)

B '(54 666 23)

I want to replace A's first items with B's, so that I get:

'(54 666 23 4 5 6 7 8 9 10)


Is there a fn to do this?  Otherwise, I will write one.  Thanks!

-- 
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: about the repl

2010-12-18 Thread Ken Wesson
On Sat, Dec 18, 2010 at 4:18 PM, Stuart Halloway
 wrote:
>> The latter is easy to fix: provide a version of println that wraps an
>> implicit (take n ...) around seq arguments (including when it calls
>> itself on seqs nested within other structures). (*print-length*
>> doesn't seem to work, just causes an infinite seq to print the first n
>> items and then a never-ending string of "..."s.)
>
> Hi Ken,
>
> In my tests *print-length* works fine with the regular REPL printer, but has 
> the defect you describe when using pprint. Can you confirm that you are also 
> seeing the problem with pprint, not print?
>
> Do some REPLs automatically replace print with pprint?

The one built into Enclojure, for one.

-- 
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: about the repl

2010-12-18 Thread Stuart Halloway
> The latter is easy to fix: provide a version of println that wraps an
> implicit (take n ...) around seq arguments (including when it calls
> itself on seqs nested within other structures). (*print-length*
> doesn't seem to work, just causes an infinite seq to print the first n
> items and then a never-ending string of "..."s.)

Hi Ken,

In my tests *print-length* works fine with the regular REPL printer, but has 
the defect you describe when using pprint. Can you confirm that you are also 
seeing the problem with pprint, not print? 

Do some REPLs automatically replace print with pprint?

Tom:  I have created a ticket with a partial fix and would appreciate your 
input: http://dev.clojure.org/jira/browse/CLJ-695.

Thanks,
Stu

-- 
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: Free Compojure Hosting? (or mostly free)

2010-12-18 Thread László Török
speaking of fine print, you probably missed "per month"...

i've using it for 2 months and was charged 9ct once for exceeding traffic
volume limit

p.s. sorry for the off-topic

2010/12/18 Marc Spitzer 

> read the fine print on this, free for 750 hours of up time, ~30 days
> on, then its billed at normal rates.
>
> marc
>
> On Sat, Dec 18, 2010 at 2:46 PM, Tim Robinson 
> wrote:
> > Free for 1 year:
> > http://aws.amazon.com/free/
> >
> >
> > On Dec 18, 10:55 am, Alex Baranosky 
> > wrote:
> >> Hi guys,
> >>
> >> I've got a simple toy app I'm writing wrote for fun to help my friend
> figure
> >> out where in the Boston area he should move to.  If I was using Rails I
> >> could throw it up on Heroku, essentially for free, because I have no
> plan to
> >> ever have any real traffic go there.  mostly I just want to show it to
> some
> >> friends at work, etc.
> >>
> >> Is there a similar free service to use with Compojure?  If not free,
> then
> >> what are the cheap options?
> >>
> >> Best,
> >> Alex
> >
> > --
> > 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
>
>
>
> --
> Freedom is nothing but a chance to be better.
> --Albert Camus
>
>  The problem with socialism is that eventually you run out
> of other people's money.
> --Margaret Thatcher
>
> --
> 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: Free Compojure Hosting? (or mostly free)

2010-12-18 Thread Marc Spitzer
read the fine print on this, free for 750 hours of up time, ~30 days
on, then its billed at normal rates.

marc

On Sat, Dec 18, 2010 at 2:46 PM, Tim Robinson  wrote:
> Free for 1 year:
> http://aws.amazon.com/free/
>
>
> On Dec 18, 10:55 am, Alex Baranosky 
> wrote:
>> Hi guys,
>>
>> I've got a simple toy app I'm writing wrote for fun to help my friend figure
>> out where in the Boston area he should move to.  If I was using Rails I
>> could throw it up on Heroku, essentially for free, because I have no plan to
>> ever have any real traffic go there.  mostly I just want to show it to some
>> friends at work, etc.
>>
>> Is there a similar free service to use with Compojure?  If not free, then
>> what are the cheap options?
>>
>> Best,
>> Alex
>
> --
> 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



-- 
Freedom is nothing but a chance to be better.
--Albert Camus

 The problem with socialism is that eventually you run out
of other people's money.
--Margaret Thatcher

-- 
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: about the repl

2010-12-18 Thread Robert McIntyre
The rlwrap method is very cool, but I can't seem to get ctrl-C to work
(it still quits to the terminal)

any advice?

--Robert McIntyre

On Sat, Dec 18, 2010 at 3:01 PM, Mike Meyer
 wrote:
> On Fri, 17 Dec 2010 22:45:01 -0800 (PST)
> tor  wrote:
>> Is there a way to activate word completion in the repl? I find myself
>> hitting tab all the time...
>
> Since nobody else mentioned it (or even offered a solution other than
> "Try my environment"), you can use rlwrap (should be available in your
> systems package manager) to run your repl, and get word completion -
> among other goodies one wants on a command line.
>
> The appropriate rlwrap invocation is:
>
> rlwrap --command clojure --complete-filenames --quote-characters='"' 
> --prompt-colour=Red
>
> followed by whatever command you use to start the repl.
>
> You'll also want to past this code into a repl running in your home
> directory:
>
> (def completions
>    (reduce concat (map (fn [ns] (keys (ns-publics ns))) (all-ns
>
> (defn save-completions-to [filename]
>  (with-open [f (java.io.BufferedWriter. (java.io.FileWriter. filename))]
>    (.write f (apply str (interleave completions (repeat "\n"))
>
> (save-completions-to ".clojure_completions")
>
> to create the list of completions for rlwrap.
>
>    --
> Mike Meyer               http://www.mired.org/consulting.html
> Independent Network/Unix/Perforce consultant, email for more information.
>
> O< ascii ribbon campaign - stop html mail - www.asciiribbon.org
>
> --
> 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


HTML5 Validator

2010-12-18 Thread Alyssa Kwan
Hi!

I'd like to unit test my html output for well-formedness.  What's an
easy way to test it for HTML5 validity?  Are there good Clojure libs
for this?  I only need to check for validity, not parse.

Thanks!
Alyssa

-- 
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: about the repl

2010-12-18 Thread Mike Meyer
On Fri, 17 Dec 2010 22:45:01 -0800 (PST)
tor  wrote:
> Is there a way to activate word completion in the repl? I find myself 
> hitting tab all the time...

Since nobody else mentioned it (or even offered a solution other than
"Try my environment"), you can use rlwrap (should be available in your
systems package manager) to run your repl, and get word completion -
among other goodies one wants on a command line.

The appropriate rlwrap invocation is:

rlwrap --command clojure --complete-filenames --quote-characters='"' 
--prompt-colour=Red 

followed by whatever command you use to start the repl.

You'll also want to past this code into a repl running in your home
directory:

(def completions
(reduce concat (map (fn [ns] (keys (ns-publics ns))) (all-ns

(defn save-completions-to [filename]
  (with-open [f (java.io.BufferedWriter. (java.io.FileWriter. filename))]
(.write f (apply str (interleave completions (repeat "\n"))

(save-completions-to ".clojure_completions")

to create the list of completions for rlwrap.

http://www.mired.org/consulting.html
Independent Network/Unix/Perforce consultant, email for more information.

O< ascii ribbon campaign - stop html mail - www.asciiribbon.org

-- 
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: Free Compojure Hosting? (or mostly free)

2010-12-18 Thread Tim Robinson
Free for 1 year:
http://aws.amazon.com/free/


On Dec 18, 10:55 am, Alex Baranosky 
wrote:
> Hi guys,
>
> I've got a simple toy app I'm writing wrote for fun to help my friend figure
> out where in the Boston area he should move to.  If I was using Rails I
> could throw it up on Heroku, essentially for free, because I have no plan to
> ever have any real traffic go there.  mostly I just want to show it to some
> friends at work, etc.
>
> Is there a similar free service to use with Compojure?  If not free, then
> what are the cheap options?
>
> Best,
> Alex

-- 
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: currying in clojure for fixed number of arg functions

2010-12-18 Thread Eric Schulte
Ah, my apologies,

Thanks for clarifying, I should have looked more closely at your code
before responding.  That is indeed a very nice idea (and an aspect of
Haskell that I sorely miss in Clojure).

I could see myself wanting to use this on a namespace level, e.g. have
all functions defined in a namespace curryable.  I'll have to look at
your code when I have some time.  I wonder if something like this can be
practical in a language where all functions aren't unary by default.

Thanks -- Eric

Sunil S Nandihalli  writes:

> On Sat, Dec 18, 2010 at 7:21 AM, Sunil S Nandihalli <
> sunil.nandiha...@gmail.com> wrote:
>
>> Hi Eric,
>>  I do know about partial. But what I am saying is that the extra function,
>> partial, is not necessary if the function was created with
>> def-curry-fn... The function automatically returns a curried version
>> when called with fewer number of arguments than necessary like it
>> happens in haskell..
>> thanks,
>> Sunil.
>>
>> On Sat, Dec 18, 2010 at 3:02 AM, Eric Schulte wrote:
>>
>>> Hi Sunil,
>>>
>>> This is already possible using `partial' function in clojure core, which
>>> also works for variable arity functions, e.g.
>>>
>>> (map (partial reduce +) [[1 2 3 4] [5 6 7 8]])
>>>
>>> Best -- Eric
>>>
>>> Sunil S Nandihalli  writes:
>>>
>>> > Hello everybody,
>>> >  I remember that the key reasoning for not supporting currying in
>>> clojure
>>> > was to be able to have variable number of arg functions.. So, I just
>>> thought
>>> > a bit and realized that it should be possible to do that for fixed arity
>>> > functions .. and then wrote the following macro to define a curry-able
>>> > fixed-number-of-argument-function
>>> >
>>> > https://gist.github.com/745654
>>> >
>>>
>> If the following was defined as
> (defn f [a b c d]
>   (+ a b c d))
>
>>  > (def-curry-fn f [a b c d]
>>> >   (+ a b c d))
>>> >
>>> > ((f 1) 2 3 4)  => 10
>>>
>> the above s-expression using partial would become ...
>
> ((partial f 1) 2 3 4) => 10
>
>>  > (((f 1 2) 3) 4) => 10
>>>
>>
> and ((partial (partial f 1 2) 3) 4) => 10 instead of (((f 1 2) 3) 4)..
>
> f 1) 2) 3) 4) => 10
> would become
> ((partial (partial (partial f 1) 2) 3) 4) => 10 .
>
> I know there is no real practical utility .. .. it was just something I
> wrote for fun.. and thought of sharing it ...
> Sunil.
>
>>  >
>>> > I just thought of sharing it with everybody. Would love to hear any
>>> > criticisms you may have.
>>> >
>>> > Thanks for reading,
>>> > Sunil
>>>
>>> --
>>> 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: Free Compojure Hosting? (or mostly free)

2010-12-18 Thread Sean Corfield
Check out stax.net (now part of CloudBees - it will become their
r...@dev product and will continue to offer some free hosting).

On Saturday, December 18, 2010, Alex Baranosky
 wrote:
> Hi guys,
> I've got a simple toy app I'm writing wrote for fun to help my friend figure 
> out where in the Boston area he should move to.  If I was using Rails I could 
> throw it up on Heroku, essentially for free, because I have no plan to ever 
> have any real traffic go there.  mostly I just want to show it to some 
> friends at work, etc.
>
> Is there a similar free service to use with Compojure?  If not free, then 
> what are the cheap options?
> Best,Alex
>
>
>
> --
> 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

-- 
Sean A Corfield -- (904) 302-SEAN
Railo Technologies, Inc. -- http://getrailo.com/
An Architect's View -- http://corfield.org/

"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood

-- 
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: Free Compojure Hosting? (or mostly free)

2010-12-18 Thread Laurent PETIT
2010/12/18 Alex Baranosky 

> Hi guys,
>
> I've got a simple toy app I'm writing wrote for fun to help my friend
> figure out where in the Boston area he should move to.  If I was using Rails
> I could throw it up on Heroku, essentially for free, because I have no plan
> to ever have any real traffic go there.  mostly I just want to show it to
> some friends at work, etc.
>
> Is there a similar free service to use with Compojure?  If not free, then
> what are the cheap options?
>
>


Hello,

Free jvm-based languages hosting service has always been problematic, AFAIK.

Though google with Google App Engine has been /somehow/ a game changer
lately, since there's a free offering.
There are limitations to which JDK APIs you can use on their server though,
so you'll have to check whether those restrictions apply to your software,
or not.

HTH,

-- 
Laurent

-- 
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

Free Compojure Hosting? (or mostly free)

2010-12-18 Thread Alex Baranosky
Hi guys,

I've got a simple toy app I'm writing wrote for fun to help my friend figure
out where in the Boston area he should move to.  If I was using Rails I
could throw it up on Heroku, essentially for free, because I have no plan to
ever have any real traffic go there.  mostly I just want to show it to some
friends at work, etc.

Is there a similar free service to use with Compojure?  If not free, then
what are the cheap options?

Best,
Alex

-- 
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: Waiting for agents

2010-12-18 Thread Robert McIntyre
That's brilliant.   Has anyone considered targeting clojure for
LaTeX3?Numerical support for one would be simplified, since LaTeX3
just uses actual rational numbers as its default instead longs or ints
or whatever.

This could be big, guys!

--Robert McIntyre

On Sat, Dec 18, 2010 at 12:19 PM, Ken Wesson  wrote:
> On Sat, Dec 18, 2010 at 11:38 AM, Daniel Werner
>  wrote:
>> On 18 December 2010 16:29, Ken Wesson  wrote:
>>> "Once Java 7 is out" is starting to seem like "once LaTeX3 is out" or
>>
>> Oh, you haven't heard the news yet? LaTeX3 has already been superseded 
>> anyway:
>>
>> http://river-valley.tv/tug-2010/an-earthshaking-announcement
>
> Are you crazy? I'm not watching a 34-minute video to find out what can
> surely be explained in a page or two of text that will take me two
> minutes to read.
>
> For the most part the online video revolution seems to be a good
> thing. But when long videos substitute for short text or HTML
> documents then there is a problem.
>
> --
> 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: about the repl

2010-12-18 Thread Lee Spector

On Dec 18, 2010, at 12:14 PM, Ken Wesson wrote:
> 
> The two commonest causes of repl hangs are
> 
> * Buggy (loop ... recur) that does not terminate
> * Repl tries to print an infinite lazy seq

Not sure what the OP's interest is but FWIW the cases in which I most often 
want to break (and look around, e.g. using a REPL -- see previous message) are 
neither of these. Often I'm deep inside of some long-running computation that's 
not buggy in any of these straightforward senses but in which I want to see 
what's going on -- e.g. maybe because some structure got bigger than I expected 
and this is leading to an exponential slowdown somewhere, etc. 

Perhaps some of the suggestions later in your message provide a path towards a 
general "interrupt and look around" solution? That would be great.

If I may be permitted (another) curmudgeonly wisecrack, this seems to be 
another area in which modern software development environments are slowly being 
dragged forward to where good lisp environments were a quarter of a century (!) 
ago. :-)

 -Lee

-- 
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: Waiting for agents

2010-12-18 Thread Ken Wesson
On Sat, Dec 18, 2010 at 11:38 AM, Daniel Werner
 wrote:
> On 18 December 2010 16:29, Ken Wesson  wrote:
>> "Once Java 7 is out" is starting to seem like "once LaTeX3 is out" or
>
> Oh, you haven't heard the news yet? LaTeX3 has already been superseded anyway:
>
> http://river-valley.tv/tug-2010/an-earthshaking-announcement

Are you crazy? I'm not watching a 34-minute video to find out what can
surely be explained in a page or two of text that will take me two
minutes to read.

For the most part the online video revolution seems to be a good
thing. But when long videos substitute for short text or HTML
documents then there is a problem.

-- 
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: about the repl

2010-12-18 Thread Ken Wesson
On Sat, Dec 18, 2010 at 11:43 AM, Stuart Sierra
 wrote:
> You don't necessarily need to kill the whole JVM.  If your REPL
> implementation runs each command in a new Thread (as most of them do, I
> think) it can just stop the thread.  That won't work in every situation (for
> example, a thread blocked waiting for I/O) but it will get you out of an
> infinite sequence.

The two commonest causes of repl hangs are

* Buggy (loop ... recur) that does not terminate
* Repl tries to print an infinite lazy seq

The latter is easy to fix: provide a version of println that wraps an
implicit (take n ...) around seq arguments (including when it calls
itself on seqs nested within other structures). (*print-length*
doesn't seem to work, just causes an infinite seq to print the first n
items and then a never-ending string of "..."s.)

The former is a bit trickier, but with a debugging flag it could be
done. When the flag is set, every (recur ...) form would compile into
a check for an interrupted flag FOLLOWED by whatever the (recur ...)
would normally produce. If the interrupted flag was set an exception
would be thrown. This could be as simple as checking
Thread/interrupted and throwing InterruptedException, the existing
Java mechanism for this sort of thing. With the flag not set, (recur
...) forms compile as they do now.

Then the repl only needs a way to interrupt the thread with a
keystroke like control-C.

The debug flag could also add interrupted checks to println, doseq,
and doall to provide the ability to escape from most situations
attempting to realize an infinite seq. This could be implemented by
adding one new special form, (debuginterrupt), that does the
interruption-check-and-throw and is omitted in non-debug compiles,
inserting it in key places in functions like doseq and doall, and
making recur a macro instead of a special form; it would call a recur*
special form that was the old recur, so (defmacro recur [& stuff] `(do
(debuginterrupt) (recur* ~...@stuff))) or similar.

The repl would need to be implemented appropriately, though. Instead
of the interaction and repl-issued commands running on the same thread
the repl would have to spawn a separate thread for a submitted
expression and then not accept inputs other than control-C until that
thread returned. A GUI repl can handle this easily enough, using
SwingWorker to launch the expression and letting the EDT catch both
the SwingWorker being done and a control-C keystroke. A command line
repl will have to roll its own EDT analogue for this. Control-C sends
interrupt to the thread, and the usual result is probably an
InterruptedException stack trace printing out and then a new repl
prompt. The stack trace might be useful.

Letting the user debug state and the like is trickier but
(debuginterrupt) provides a suitable hook. Who says the only thing it
can do on interrupt is throw an exception? It could also capture &env
and launch a GUI inspector or whatever. A mechanism could be provided
for hooking on-interrupt behavior into this special form, with the
default being (throw InterruptedException).

In fact if there is a debug-vs.-production flag known at
macroexpansion time, (debuginterrupt) can be a mere macro, something
like

(def interrupt-handler (atom (fn [_] (throw InterruptedException

(defmacro debuginterrupt []
  (if not-debug
`(if (Thread/interrupted)
   (@interrupt-handler &env

(defmacro set-interrupt-handler [env & body]
  `(reset! interrupt-handler (fn [~env] ~...@body)))

-- 
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: about the repl

2010-12-18 Thread Lee Spector

On Dec 18, 2010, at 11:25 AM, Aaron Cohen wrote:
> There already exists clojure.contrib.repl-utils/add-break-thread!
> which attempts to address this.
> (http://clojure.github.com/clojure-contrib/repl-utils-api.html#clojure.contrib.repl-utils/add-break-thread!).
> I'm not sure there's any way to resume the broken-into threads though.

It's not just resumption that's missing (at least in my experience -- see 
details below), but also the REPL in the context of the break (which is really 
the most useful thing for me anyway, to be able to look at the values of 
variables, including locals, at the point of the interruption). I'd love to 
know if I should be getting a break REPL and if I'm just doing something wrong.

When I use add-break-thread! under Eclipse/CCW on a mac it seems to make no 
difference at all -- Cntrl-C doesn't do anything. But maybe that's Eclipse or 
Mac OS X getting in the way? When I run the same code from a java command line 
under linux it does change the behavior of Cntrl-C, but the only apparent 
difference is that I get a stack dump before termination. But I still end up 
back in the shell, with no REPL. 

Here's the code I was using to test this:

(ns breaker
  (:require [clojure.contrib.repl-utils :as ru]))

(ru/add-break-thread!)

(loop [x 0]
  (println x)
  (recur (inc x)))

And here's my java command line:

java -cp $PWD:* clojure.main -i breaker.clj

FWIW the 3 methods I've been using to run Clojure code are Eclipse/CCW, a java 
command line like the above, and recently cake (with or without TextMate). I 
suspect that someone may say that the way to do what I'm describing is with 
emacs... and my reply would be that that would be useful, and I'd like to know 
about it, but that I would also be (more) interested in a way to do it outside 
of an emacs-based development environment. I use emacs and have it set up for 
clojure but the setup issues and usability issues are a real pain for me, 
especially in a teaching context.

 -Lee

-- 
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: about the repl

2010-12-18 Thread Stuart Sierra
You don't necessarily need to kill the whole JVM.  If your REPL 
implementation runs each command in a new 
Thread(as 
most of them do, I think) it can just 
stopthe
 thread.  That won't work in every situation (for example, a thread 
blocked waiting for I/O) but it will get you out of an infinite sequence.

-Stuart Sierra
clojure.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: Waiting for agents

2010-12-18 Thread Daniel Werner
On 18 December 2010 16:29, Ken Wesson  wrote:
> "Once Java 7 is out" is starting to seem like "once LaTeX3 is out" or

Oh, you haven't heard the news yet? LaTeX3 has already been superseded anyway:

http://river-valley.tv/tug-2010/an-earthshaking-announcement

-- 
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: about the repl

2010-12-18 Thread Aaron Cohen
On Sat, Dec 18, 2010 at 10:34 AM, Lee Spector  wrote:
>
> On Dec 18, 2010, at 8:23 AM, .Bill Smith wrote:
>
>> While this not what tor explicitly asked about, it is worth mentioning that 
>> the only way to kill an infinite loop in a Clojure repl is to kill the JVM.
>
> Is this architecturally necessary, or might someone be able to provide a more 
> flexible interrupt system some day?
>
> Having spent decades in other lisps one of the things I miss most in Clojure 
> is the ability to interrupt a process from the keyboard, land in a "break 
> loop" REPL, and be able to examine the local state in which the interrupt 
> occurred, evaluate forms, possibly reset variables, and possibly restart the 
> process. This is really handy when debugging, not only for infinite loops but 
> for all sorts of long-running processes. I understand that in a 
> multi-threaded application there might be choices about which thread(s) to 
> interrupt, but it would be great to have anything along these lines. I also 
> understand that allowing for this may have a runtime cost, but perhaps it 
> could be turned on/off for development/deployment?
>

There already exists clojure.contrib.repl-utils/add-break-thread!
which attempts to address this.
(http://clojure.github.com/clojure-contrib/repl-utils-api.html#clojure.contrib.repl-utils/add-break-thread!).
I'm not sure there's any way to resume the broken-into threads though.

Note that it's impossible in the JVM to cause threads to cancel in
some cases (for instance are looping and never execute an
interruptible function within the loop).

-- 
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: about the repl

2010-12-18 Thread Lee Spector

On Dec 18, 2010, at 8:23 AM, .Bill Smith wrote:

> While this not what tor explicitly asked about, it is worth mentioning that 
> the only way to kill an infinite loop in a Clojure repl is to kill the JVM.  

Is this architecturally necessary, or might someone be able to provide a more 
flexible interrupt system some day?

Having spent decades in other lisps one of the things I miss most in Clojure is 
the ability to interrupt a process from the keyboard, land in a "break loop" 
REPL, and be able to examine the local state in which the interrupt occurred, 
evaluate forms, possibly reset variables, and possibly restart the process. 
This is really handy when debugging, not only for infinite loops but for all 
sorts of long-running processes. I understand that in a multi-threaded 
application there might be choices about which thread(s) to interrupt, but it 
would be great to have anything along these lines. I also understand that 
allowing for this may have a runtime cost, but perhaps it could be turned 
on/off for development/deployment?

-Lee

-- 
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: Waiting for agents

2010-12-18 Thread Ken Wesson
On Sat, Dec 18, 2010 at 7:52 AM, Daniel Werner
 wrote:
> I seem to recall that Rich was interested in pursuing this avenue
> again once Java 7 was out, but I could be wrong.

"Once Java 7 is out" is starting to seem like "once LaTeX3 is out" or
"once Half-Life 2 Episode 3 is out" or "once Duke Nukem Forever is
out" -- i.e., forever. :)

-- 
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: about the repl

2010-12-18 Thread .Bill Smith
While this not what tor explicitly asked about, it is worth mentioning that 
the only way to kill an infinite loop in a Clojure repl is to kill the JVM. 
 I too recommend experimenting with other environments (I use Emacs) -- just 
don't expect them to deal better with infinite loops  than the REPL you are 
already using.

Bill Smith

-- 
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: Waiting for agents

2010-12-18 Thread Daniel Werner
On 18 December 2010 10:41, nicolas.o...@gmail.com
 wrote:
> Thank you very much for the explanations. I will go for Fork/join.
> Anybody is working on a clojure wrapper?

Take a look at Clojure's par branch:

https://github.com/clojure/clojure/tree/par

It has proof-of-concept Fork/Join support, but is quite a bit out of
sync with master now. David Liebke has done some renovations on it
recently:

http://data-sorcery.org/2010/10/23/clojureconj/

I seem to recall that Rich was interested in pursuing this avenue
again once Java 7 was out, but I could be wrong.

Daniel

-- 
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: Waiting for agents

2010-12-18 Thread nicolas.o...@gmail.com
Thank you very much for the explanations. I will go for Fork/join.
Anybody is working on a clojure wrapper?

On Fri, Dec 17, 2010 at 7:48 PM, Konrad Hinsen
 wrote:
> On 17 Dec 2010, at 19:47, nicolas.o...@gmail.com wrote:
>
>>> How about futures? They are in clojure.core and can be used for much the
>>> same purposes as Fork/Join, unless your individual tasks are so small that
>>> the performance advantage of Fork/Join makes a difference.
>>>
>>
>> Thank you for this suggestion. I thought a bit, and I wonder whether
>> it can result in too many thread being forked or thread starvation
>> deadlock in my situation.
>>
>> Does future fork a thread per task?
>
> A future is submitted to the same thread pool used by send-off for agents.
> This is a thread pool of unlimited size, so there is  in principle a risk of
> many threads being started if you run futures faster then they can finish,
> or if many of them end up blocking. If you use a recursive-decomposition
> approach, fork/join is likely to be a better choice because it was designed
> for that kind of pattern. But there is no risk of deadlock or thread
> starvation.
>
> Konrad.
>
> --
> 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: about the repl

2010-12-18 Thread Meikel Brandmeyer
Hi,

Am 18.12.2010 um 09:00 schrieb Robert McIntyre:

> Also if you don't like emacs you might try the eclipse
> counterclockwise plugin --- it has a nice repl too.

I think all of the major environments have decent repls. Emacs/swank, 
Eclipse/ccw, Netbeans/enclojure, Vim/VimClojure. What you are familiar with is 
probably the best choice.

Sincerely
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: currying in clojure for fixed number of arg functions

2010-12-18 Thread Sunil S Nandihalli
 very cool implementation .. Something tells me that you didn't leave your
python background behind.. :)
Sunil.

On Sat, Dec 18, 2010 at 12:13 PM, Robert McIntyre  wrote:

> I think your work is a wonderful idea.  I've been wanting to do this
> myself for some time.
> Thanks for actually doing it instead of just thinking about it.
>
> I have some humble thoughts/suggestions after reading your code; I'd
> love to hear what you think about these points:
>
> 1. I think that auto-currying itself should be a higher order
> function, which a macro then makes easier to use.
> 2. Your def-curry-fn doesn't allow for easy embedding of metadata like
> defn does; it could take advantage of defn from core for all that.
> 3. Your def-curry-fn is similar in spirit to defn-memo from
> clojure.contrib.def, but it's hard to combine it with that macro to
> get both effects (both curried and memoized) I feel like this is
> asking for a higher level of abstraction of "apply this unitary
> higher-order transform to the following definition" than making a
> defn-"higher-order-transform" macro for every transform those type of
> functions are called decorators in some other languages.
>
>
> I've sketched out a hopefully enhanced version of your code here:
> https://gist.github.com/746185
>
> While writing it, I found it convenient to extend the domain of
> partial to include a single argument.
> i.e. (= (partial f) f)
> I think it might be a good enhancement of the partial function, as it
> logically flows from the other airties.
> Do people think it would be a good patch for core?
>
> Please tell me what you think of my code :)  All criticisms are
> welcome; I too am still learning.
>
> Sincerely,
> --Robert McIntyre
>
>
> On Fri, Dec 17, 2010 at 9:00 PM, Sunil S Nandihalli
>  wrote:
> >
> >
> > On Sat, Dec 18, 2010 at 7:21 AM, Sunil S Nandihalli
> >  wrote:
> >>
> >> Hi Eric,
> >>  I do know about partial. But what I am saying is that the extra
> function,
> >> partial, is not necessary if the function was created with
> >> def-curry-fn... The function automatically returns a curried version
> >> when called with fewer number of arguments than necessary like it
> >> happens in haskell..
> >> thanks,
> >> Sunil.
> >> On Sat, Dec 18, 2010 at 3:02 AM, Eric Schulte 
> >> wrote:
> >>>
> >>> Hi Sunil,
> >>>
> >>> This is already possible using `partial' function in clojure core,
> which
> >>> also works for variable arity functions, e.g.
> >>>
> >>> (map (partial reduce +) [[1 2 3 4] [5 6 7 8]])
> >>>
> >>> Best -- Eric
> >>>
> >>> Sunil S Nandihalli  writes:
> >>>
> >>> > Hello everybody,
> >>> >  I remember that the key reasoning for not supporting currying in
> >>> > clojure
> >>> > was to be able to have variable number of arg functions.. So, I just
> >>> > thought
> >>> > a bit and realized that it should be possible to do that for fixed
> >>> > arity
> >>> > functions .. and then wrote the following macro to define a
> curry-able
> >>> > fixed-number-of-argument-function
> >>> >
> >>> > https://gist.github.com/745654
> >>> >
> >
> > If the following was defined as
> > (defn f [a b c d]
> >   (+ a b c d))
> >>>
> >>> > (def-curry-fn f [a b c d]
> >>> >   (+ a b c d))
> >>> >
> >>> > ((f 1) 2 3 4)  => 10
> >
> > the above s-expression using partial would become ...
> > ((partial f 1) 2 3 4) => 10
> >>>
> >>> > (((f 1 2) 3) 4) => 10
> >
> > and ((partial (partial f 1 2) 3) 4) => 10 instead of (((f 1 2) 3) 4)..
> > f 1) 2) 3) 4) => 10
> > would become
> > ((partial (partial (partial f 1) 2) 3) 4) => 10 .
> > I know there is no real practical utility .. .. it was just something I
> > wrote for fun.. and thought of sharing it ...
> > Sunil.
> >>>
> >>> >
> >>> > I just thought of sharing it with everybody. Would love to hear any
> >>> > criticisms you may have.
> >>> >
> >>> > Thanks for reading,
> >>> > Sunil
> >>>
> >>> --
> >>> 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
>
> --
> 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 me

Re: about the repl

2010-12-18 Thread Robert McIntyre
Well even if you don't like emacs it still serves as a decent repl :)

Also if you don't like emacs you might try the eclipse
counterclockwise plugin --- it has a nice repl too.

good luck,
--Robert McIntyre

On Sat, Dec 18, 2010 at 2:56 AM, tor  wrote:
> Thanks for the quick reply! I tried to get used to emacs a few years ago
> with little success.  But I'm going to give it another try.
>
> --
> 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