In search of the little transducer

2016-01-29 Thread Mars0i
Years ago, I learned Common Lisp and Scheme.  I read a number of books that 
explained recursion.  I understood what I read ... but I never really got 
it.  It wasn't a part of me.  Then I worked through *The Little Lisper* 
(renamed *The Little Schemer*), and it became second nature.  Studied ML, 
Haskell, etc.: recursion was easy.

I feel as if I'm in the same position, now, with transducers.  I've read 
Rich Hickey's introductory articles, watched part of a video, read a 
handful of introductory blog posts by others, and I can't say I don't 
understand.  It's not that difficult ... but I don't grok it, really.

I need *The Little Transducer.*

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[ANN] boot-new 0.3.0 -- Templates for Boot!

2016-01-29 Thread Sean Corfield
What / Where?
Boot new — a task to produce new projects from Boot and/or Leiningen templates!
boot-new 0.3.0 — https://github.com/seancorfield/boot-new

Updates?
No longer depends on Bultitude.
Only pulls in leiningen-core dependency if you generate a project from a 
Leiningen template.
Built-in Boot templates (app, default, task, template) generate Boot projects.

Coming Soon?
Generators: quickly add new pieces of code to existing projects!

Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/

"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)


-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


getting started: generated address-book directory does not match tutorial

2016-01-29 Thread hiskennyness


[Also posted in the Hoplon github issues area.]


I have been working thru the 
https://github.com/hoplon/hoplon/wiki/Get-Started guide on a brand new 
Ubuntu VM running under vmware on windows 10 and all went well until:

lein new hoplon address-book

That actually went fine, but the resulting directory does not match at all 
the contents advertised in the tutorial. I just see .gitignore, 
project.clj, README, and two sub-directories, src and test. And src just 
has a hoplon directory containing core.clj. The README looks like a stub.

I tried: lein new hoplon-template address-book as well, and the castra 
template. Same result. It looks as if I am not getting a web client 
template, actually.

I think the only mistake I made following the tutorial was installing boot 
before leiningen.

Did I miss a step?

Thx, kenneth

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [ANN] Specter 0.9.2

2016-01-29 Thread Nathan Marz
It used to use cljc but needed to switch to cljx so that it could be
compatible with Clojure 1.6. It doesn't really affect users, it just adds
some inconvenience to working on Specter itself. Once it looks like most
people are on 1.7 or above, I'm all for switching it back to cljc.

On Fri, Jan 29, 2016 at 5:07 PM, Jason Lewis 
wrote:

> Wow, I hadn't seen this lib before, it really *is* the missing piece in a
> lot of ways.
>
> One question, are you considering migrating from cljx to cljc for
> cross-compiling? We've been trying to eliminate cljx dependencies in favor
> of cljc, and I'd be happy to help with the effort if it's on the roadmap.
>
> cheers,
> Jason
>
> On Tue, Jan 26, 2016 at 3:51 PM Nathan Marz  wrote:
>
>> I just released Specter 0.9.2:
>>
>> https://github.com/nathanmarz/specter
>> https://clojars.org/com.rpl/specter/versions/0.9.2
>>
>> Specter solves a near-universal problem encountered when writing
>> Clojure/ClojureScript: the need to transform or query a data structure
>> that's more sophisticated than a basic map or list. It is a library that
>> captures the notion of "navigation" within a data structure and allows for
>> writing elegant queries and transformations. Its performance is close to
>> hand-optimized code so it can be used even in performance-critical code.
>> Additionally, Specter is extensible to any data structure as it is based on
>> a simple protocol.
>>
>> There have been over 15 releases since I last posted about Specter on the
>> group (almost a year ago), and there's been a ton of improvements since
>> then:
>>
>> - Precompilation feature enabling performance rivaling hand-optimized code
>> - Facilities for creating recursive navigators, including pre-walk and
>> post-walk traversals (declarepath/providepath, stay-then-continue,
>> continue-then-stay)
>> - ClojureScript support
>> - Conditional navigation (if-path, cond-path)
>> - Protocol paths: navigate based on the type of data encountered
>> - "Batteries included" set of navigators that captures majority of use
>> cases dealing with combinations of maps, lists, vectors, and sets
>>
>> --
>> 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 unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> 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 a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojure/XePZ-WSviso/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Twitter: @nathanmarz
http://nathanmarz.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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [ANN] Specter 0.9.2

2016-01-29 Thread Jason Lewis
Wow, I hadn't seen this lib before, it really *is* the missing piece in a
lot of ways.

One question, are you considering migrating from cljx to cljc for
cross-compiling? We've been trying to eliminate cljx dependencies in favor
of cljc, and I'd be happy to help with the effort if it's on the roadmap.

cheers,
Jason

On Tue, Jan 26, 2016 at 3:51 PM Nathan Marz  wrote:

> I just released Specter 0.9.2:
>
> https://github.com/nathanmarz/specter
> https://clojars.org/com.rpl/specter/versions/0.9.2
>
> Specter solves a near-universal problem encountered when writing
> Clojure/ClojureScript: the need to transform or query a data structure
> that's more sophisticated than a basic map or list. It is a library that
> captures the notion of "navigation" within a data structure and allows for
> writing elegant queries and transformations. Its performance is close to
> hand-optimized code so it can be used even in performance-critical code.
> Additionally, Specter is extensible to any data structure as it is based on
> a simple protocol.
>
> There have been over 15 releases since I last posted about Specter on the
> group (almost a year ago), and there's been a ton of improvements since
> then:
>
> - Precompilation feature enabling performance rivaling hand-optimized code
> - Facilities for creating recursive navigators, including pre-walk and
> post-walk traversals (declarepath/providepath, stay-then-continue,
> continue-then-stay)
> - ClojureScript support
> - Conditional navigation (if-path, cond-path)
> - Protocol paths: navigate based on the type of data encountered
> - "Batteries included" set of navigators that captures majority of use
> cases dealing with combinations of maps, lists, vectors, and sets
>
> --
> 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 unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [ANN] Specter 0.9.2

2016-01-29 Thread Alan Thompson
nice.

On Fri, Jan 29, 2016 at 11:18 AM, Nathan Marz  wrote:

> I updated the example with a larger replacement sequence to hopefully
> prevent that confusion in the future.
>
> You can also use srange to eliminate subsequences, e.g.:
>
> (setval (srange 4 7) nil [:a :b :c :d :e :f :g :h :i])
> => [:a :b :c :d :h :i]
>
> And the navigator to prepend to a sequence is just selecting the empty
> subsequence at the beginning:
>
> (def BEGINNING (srange 0 0))
> (setval BEGINNING [:a :b] '(1 2 3))
> => (:a :b 1 2 3)
>
>
> On Fri, Jan 29, 2016 at 10:27 AM, Alan Thompson 
> wrote:
>
>> Oh!  I never even suspected that!  So you are replacing a length-2
>> subsequence with a length-3 subsequence.  Very flexible.
>>
>> It might be useful to point out that feature in the docs.   :)
>>
>> Alan
>>
>>
>> On Thu, Jan 28, 2016 at 10:49 PM, Nathan Marz 
>> wrote:
>>
>>> Both of those examples use half-open intervals :) The first selects the
>>> subsequence with indices 1,2,3, and the second selects the subsequence with
>>> indices 2,3. You can see in the second example that [2 3] in the overall
>>> sequence is replaced by [-1 -1 -1].
>>>
>>> On Thu, Jan 28, 2016 at 9:10 PM, Alan Thompson 
>>> wrote:
>>>
 Looks great, Nathan.  I also highly enjoyed your recent interview on the
 Cognitect podcast  .

 One quick question:  In the first example below from the README
 (verified at the repl), it seems that the (srange ...) function
 sometimes behaves as a half-open interval [1,4) like the (range ...)
 function in Clojure).  However, in the 2nd example it seems to behave
 as a closed interval [2,4].  Is there an easy way of knowing which behavior
 applies in different situations?

 Thanks,
 Alan


 Here's how to increment all the odd numbers between indexes 1
 (inclusive) and 4 (exclusive):

 user> (transform [(srange 1 4) ALL odd?] inc [0 1 2 3 4 5 6 7])

 [0 2 2 4 4 5 6 7]

 Here's how to replace the subsequence from index 2 to 4 with [-1 -1 -1]:

 user> (setval (srange 2 4) [-1 -1 -1] [0 1 2 3 4 5 6 7 8 9])

 [0 1 -1 -1 -1 4 5 6 7 8 9]






 On Thu, Jan 28, 2016 at 4:11 PM, Jean Baro  wrote:

>
> Congratulations for the spectacular work and thanks for sharing this
> with the world.
>
> --
> 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 unsubscribe from this group and stop receiving emails from it, send
> an email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

 --
 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 a topic in the
 Google Groups "Clojure" group.
 To unsubscribe from this topic, visit
 https://groups.google.com/d/topic/clojure/XePZ-WSviso/unsubscribe.
 To unsubscribe from this group and all its topics, send an email to
 clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.

>>>
>>>
>>>
>>> --
>>> Twitter: @nathanmarz
>>> http://nathanmarz.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
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure"

Re: [ANN] Specter 0.9.2

2016-01-29 Thread Nathan Marz
I updated the example with a larger replacement sequence to hopefully
prevent that confusion in the future.

You can also use srange to eliminate subsequences, e.g.:

(setval (srange 4 7) nil [:a :b :c :d :e :f :g :h :i])
=> [:a :b :c :d :h :i]

And the navigator to prepend to a sequence is just selecting the empty
subsequence at the beginning:

(def BEGINNING (srange 0 0))
(setval BEGINNING [:a :b] '(1 2 3))
=> (:a :b 1 2 3)


On Fri, Jan 29, 2016 at 10:27 AM, Alan Thompson  wrote:

> Oh!  I never even suspected that!  So you are replacing a length-2
> subsequence with a length-3 subsequence.  Very flexible.
>
> It might be useful to point out that feature in the docs.   :)
>
> Alan
>
>
> On Thu, Jan 28, 2016 at 10:49 PM, Nathan Marz 
> wrote:
>
>> Both of those examples use half-open intervals :) The first selects the
>> subsequence with indices 1,2,3, and the second selects the subsequence with
>> indices 2,3. You can see in the second example that [2 3] in the overall
>> sequence is replaced by [-1 -1 -1].
>>
>> On Thu, Jan 28, 2016 at 9:10 PM, Alan Thompson 
>> wrote:
>>
>>> Looks great, Nathan.  I also highly enjoyed your recent interview on the
>>> Cognitect podcast  .
>>>
>>> One quick question:  In the first example below from the README
>>> (verified at the repl), it seems that the (srange ...) function
>>> sometimes behaves as a half-open interval [1,4) like the (range ...)
>>> function in Clojure).  However, in the 2nd example it seems to behave
>>> as a closed interval [2,4].  Is there an easy way of knowing which behavior
>>> applies in different situations?
>>>
>>> Thanks,
>>> Alan
>>>
>>>
>>> Here's how to increment all the odd numbers between indexes 1
>>> (inclusive) and 4 (exclusive):
>>>
>>> user> (transform [(srange 1 4) ALL odd?] inc [0 1 2 3 4 5 6 7])
>>>
>>> [0 2 2 4 4 5 6 7]
>>>
>>> Here's how to replace the subsequence from index 2 to 4 with [-1 -1 -1]:
>>>
>>> user> (setval (srange 2 4) [-1 -1 -1] [0 1 2 3 4 5 6 7 8 9])
>>>
>>> [0 1 -1 -1 -1 4 5 6 7 8 9]
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Jan 28, 2016 at 4:11 PM, Jean Baro  wrote:
>>>

 Congratulations for the spectacular work and thanks for sharing this
 with the world.

 --
 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 unsubscribe from this group and stop receiving emails from it, send
 an email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.

>>>
>>> --
>>> 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 a topic in the
>>> Google Groups "Clojure" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/clojure/XePZ-WSviso/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> --
>> Twitter: @nathanmarz
>> http://nathanmarz.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
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> 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
> 

Re: [ANN] Specter 0.9.2

2016-01-29 Thread Alan Thompson
Oh!  I never even suspected that!  So you are replacing a length-2
subsequence with a length-3 subsequence.  Very flexible.

It might be useful to point out that feature in the docs.   :)

Alan


On Thu, Jan 28, 2016 at 10:49 PM, Nathan Marz  wrote:

> Both of those examples use half-open intervals :) The first selects the
> subsequence with indices 1,2,3, and the second selects the subsequence with
> indices 2,3. You can see in the second example that [2 3] in the overall
> sequence is replaced by [-1 -1 -1].
>
> On Thu, Jan 28, 2016 at 9:10 PM, Alan Thompson  wrote:
>
>> Looks great, Nathan.  I also highly enjoyed your recent interview on the
>> Cognitect podcast  .
>>
>> One quick question:  In the first example below from the README (verified
>> at the repl), it seems that the (srange ...) function sometimes behaves
>> as a half-open interval [1,4) like the (range ...) function in
>> Clojure).  However, in the 2nd example it seems to behave as a closed
>> interval [2,4].  Is there an easy way of knowing which behavior applies in
>> different situations?
>>
>> Thanks,
>> Alan
>>
>>
>> Here's how to increment all the odd numbers between indexes 1 (inclusive)
>> and 4 (exclusive):
>>
>> user> (transform [(srange 1 4) ALL odd?] inc [0 1 2 3 4 5 6 7])
>>
>> [0 2 2 4 4 5 6 7]
>>
>> Here's how to replace the subsequence from index 2 to 4 with [-1 -1 -1]:
>>
>> user> (setval (srange 2 4) [-1 -1 -1] [0 1 2 3 4 5 6 7 8 9])
>>
>> [0 1 -1 -1 -1 4 5 6 7 8 9]
>>
>>
>>
>>
>>
>>
>> On Thu, Jan 28, 2016 at 4:11 PM, Jean Baro  wrote:
>>
>>>
>>> Congratulations for the spectacular work and thanks for sharing this
>>> with the world.
>>>
>>> --
>>> 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 unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> 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 a topic in the
>> Google Groups "Clojure" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/clojure/XePZ-WSviso/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Twitter: @nathanmarz
> http://nathanmarz.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
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


error in receipe 1 of "Clojure Data Structures and Algorithms Cookbook"?

2016-01-29 Thread gianluca torta
Hi all,

I have just started reading this book, and went through the 1st Recipe:
https://www.packtpub.com/application-development/clojure-data-structures-and-algorithms-cookbook

Unfortunately, the recipe apparently does not work. On page 2, the author 
informally describes the recipe as taking:
["a" "a" "a" "b" "b" "b" "b" "b" "b" "b" "c" "c"]

and producing a "compressed" version looking like:
[3 times "a", 7 times "b", 2 times "c"]
i.e., recognizing the repetitions of characters

The code in the book (which can be downloaded after registration from the 
above site), however, produces the following:
(LZ77 ["a" "a" "a" "b" "b" "b" "b" "b" "b" "b" "c" "c"] 100)
;=> ["a" [1 1] "a" "b" [1 1] "b" [3 3] "b" "c" [1 1]]

(100 is just the size of the history window used by the compression 
function)

While I would have expected:
["a" [1 3] "b" [1 7] "c" [1 2]]

Has anyone tried the recipe and can (dis)confirm my experience?

Thanks in advance

Cheers
Gianluca

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[ANN] Chestnut 0.9

2016-01-29 Thread Arne Brasseur
Chestnut is a beginner friendly Leiningen template for web applications
featuring Figwheel, Om, Compojure, easy testing, and easy deployment.

https://github.com/plexus/chestnut/

This is a major upgrade that brings Chestnut up-to-date with the current
state of the art. Figwheel and Clojurescript in particular have evolved
rapidly, meaning we could drop a lot of boilerplate and simplify things.

Highlights 

* Use Figwheel's browser REPL instead of Weasel
* Let Figwheel handle HTTP requests, instead of starting a separate
  Jetty/http-kit server
* Better and simpler Clojurescript testing with doo
* Drop Enlive and simplify the dev vs production setup
* Drop CLJX support
* Better inline documentation

For a more in-depth walkthrough of the new version and the changes that
have gone into it, you can look at this presentation from the Berlin
Clojure user group.

https://www.youtube.com/watch?v=GcdAIVOWBUQ

Chestnut aims to lower the barrier to entry for newcomers wanting to
build apps with Clojure+Clojurescript. It gives you an opinionated and
feature complete setup, while at the same time staying minimal.

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [ANN] Alia 3.0.0 - High performance Cassandra client

2016-01-29 Thread Max Penet
And I fogot to mention the changelog! 

 https://github.com/mpenet/alia/blob/master/CHANGELOG.md#changelog 

On Friday, January 29, 2016 at 12:06:57 PM UTC+1, Max Penet wrote:
>
> Alia is reaching 3.0.0, following its parent project
> datastax/java-driver. It covers the most recent features of the
> official client, while making it more pleasant to work from clojure.
>
> Alia is mature and very stable, it's been nearly bug free for years.
> It is in use by some very serious companies in domains ranging from
> cloud hosting, HFT, media broadcasting & data analytics among others.
>
> Alia is extensible in many ways: control of ResultSet decoding via
> IReduce, lazy or not, cell type decoding via protocol, optional
> core.async/manifold/callback interface for async, blocking or
> non-blocking IO, rows streaming, etc.
>
> And finally thanks to the contributors who made this release better 
> through contributions and/or suggestions:
>
> * Derek Troy-West
> * Pierre-Yves Riʦchard
> * @mccraigmccraig (of the clan mccraig!)
> * Tao Lin
> * Kiyu Gabriel
> * @acron0
> * @kharus
>
>
> on github: https://github.com/mpenet/alia 
> or clojars: https://clojars.org/cc.qbits/alia
>
>
> -- 
> Max Penet
> github: https://github.com/mpenet 
> twitter: http://twitter.com/mpenet
>

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[ANN] Alia 3.0.0 - High performance Cassandra client

2016-01-29 Thread Max Penet
Alia is reaching 3.0.0, following its parent project
datastax/java-driver. It covers the most recent features of the
official client, while making it more pleasant to work from clojure.

Alia is mature and very stable, it's been nearly bug free for years.
It is in use by some very serious companies in domains ranging from
cloud hosting, HFT, media broadcasting & data analytics among others.

Alia is extensible in many ways: control of ResultSet decoding via
IReduce, lazy or not, cell type decoding via protocol, optional
core.async/manifold/callback interface for async, blocking or
non-blocking IO, rows streaming, etc.

And finally thanks to the contributors who made this release better through 
contributions 
and/or suggestions:

* Derek Troy-West
* Pierre-Yves Riʦchard
* @mccraigmccraig (of the clan mccraig!)
* Tao Lin
* Kiyu Gabriel
* @acron0
* @kharus


on github: https://github.com/mpenet/alia 
or clojars: https://clojars.org/cc.qbits/alia


-- 
Max Penet
github: https://github.com/mpenet 
twitter: http://twitter.com/mpenet

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Check if value is a ring handler

2016-01-29 Thread Atamert Ölçgen
You can check for a valid response using ring.util.response/response?
(obviously requires calling the function in question)

On Wed, Jan 27, 2016 at 7:42 AM, JvJ  wrote:

> Is there a way to dynamically check whether or not a given function
> qualifies as a ring handler?
>
> --
> 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 unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Kind Regards,
Atamert Ölçgen

◻◼◻
◻◻◼
◼◼◼

www.muhuk.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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.