[ANN] jnanomsg 0.3.1 - Clojure and Java bindings for nanomsg.

2014-02-09 Thread Andrey Antukh
Clojure and Java bindings for nanomsg[1] (build on top of JNA)

Changes:

- New: experimental async api support for java bindings.
- New: experimental core.async support for all sockets.
- New: experimental core.async channels implementation (only for pipeline
sockets)
- Fixes: removed hardcoded symbols, and now are resolved in runtime.

Github: https://github.com/niwibe/jnanomsg
Doc: http://niwibe.github.io/jnanomsg/

[1]: http://nanomsg.org/
-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be 
https://github.com/niwibe

-- 
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/groups/opt_out.


Re: map semantics

2014-02-09 Thread Michał Marczyk
The Contrib library algo.generic provides a function fmap which does
preserve the type of its input.

As for the idea that clojure.core/map should preserve type, it's worth
remembering that in order to map a function over a set and return a
set, we must do two things: (1) apply the function to each element of
the input set, (2) produce a set containing the resulting values. In
general, there is no better way to do this than to pour (map f s) into
a new set, because the shape of the output is for the most part
undetermined by the input (except if the input is empty or is a
*sorted* set of size 1; actually in the latter case there is the
comparator issue, see below).

So, the fundamental operations here are (1) mapping a function over a
sequence / iterator, (2) pouring a sequence of items into a
collection. As it happens, both (1) and (2) are useful in many
different scenarios, separately and together. Thus, they make great
primitives, and Clojure chooses to expose them as such.

Then of course map and filter are lazy and can be used to do things
like (->> some-sorted-set (filter p?) (map f) (take n)); take could be
reordered with map, but not with filter, and if it's ok for filter to
convert to seq implicitly, then it is also ok for map.

In the case of sorted sets and maps, there is no guarantee that the
input collection's comparator can deal with outputs from the function
passed to map.

So, these are some of the available conceptual arguments. There is
also a rather convincing practical argument in the form of the
existing body of Clojure code, written using the existing Clojure core
library and its conventions and achieving, in many cases, amazing
levels of clarity and concision.

Cheers,
Michał


On 9 February 2014 06:07, Mars0i  wrote:
> Maybe physical identity is too strong of a requirement for equality.  So
> another way to think about it is that it's 'hash-set', 'set', and '#{}' that
> are--you know--"broken", but that there's a fix, which is to always use
> 'sorted-set'.  (I'm assuming that calling 'seq' on any two sorted sets that
> are = always returns seqs that are =.)
>
> (Don't take offense at the tone of my remarks.  I think we're all on the
> same side here.)
>
>
> On Saturday, February 8, 2014 10:14:37 PM UTC-6, Mars0i wrote:
>>
>> Maybe another way to put it is that what is, uh, "broken" isn't 'map' or
>> 'seq', but '=', which is willing to tell you that two things (sets) are the
>> same when they're not!  We also have the non-broken predicate 'identical?',
>> however, that gets it right.  It's nice to also have a set-equal predicate,
>> which ignores differences in how sets are stored, and ... that's what '='
>> is!  However, if we interpret '=' as implying that when the same function is
>> applied to things that are "equal" in its sense, then we are making a
>> mistake: '=' doesn't mean that.  According to this reasoning, nothing here
>> is broken, even from an extra-linguistic perspective.  '=' just shouldn't be
>> misunderstood.  (In a language with different design and style goals, it
>> might been preferable to define "=" to mean what Clojure means by
>> 'identical?', and use something else--perhaps "equivalent?"--for a predicate
>> analogous to Clojure's '='.)
>
> --
> 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/groups/opt_out.

-- 
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/groups/opt_out.


Re: map semantics

2014-02-09 Thread Jozef Wagner
There are many types and flavors of equality, and only handful of symbols.
Symbol '=' in Clojure does not represent yours fundamental = comparison
operator. = in Clojure compares for the actual value ignoring concrete
types of collections and the internal representation of how the items are
stored.

user=> (= [\1 \2] '(\1 \2) (first {\1 \2}) (seq "12"))
true

I has some not so obvious consequences for sure

user=> (assoc {[1 2] :foo} '(1 2) :bar)
{[1 2] :bar}

But it was carefuly designed that way, considering many trade-offs. Nothing
stops you from defining another equality predicate that will suits your
need.

JW


On Sun, Feb 9, 2014 at 4:04 AM, Andy C  wrote:

> I can ensure all of you that it is very uncomfortable for a newcomer with
> a goofy nick to just come in and say things are broke LOL . So at that
> point I have two choices:
>
> 1) as suggested, find another programming language but that would mean
> that I would have to erase my Clojure tattoo (very painful).
> 2) stop making enemies and pretend that seq on sets is cools and neat and
> we really do not need to stick to fundeaments of FP:  a=b => f(a) = f(b) in
> critical part of the language. It ain't going to happen either.
>
> Although, the worst part about it all is that my carefully crafted piece
> of software used for controlling nuclear power plants relies on Clojure
> set-s. As we above some part of it is non deterministic as the calculated
> controls paramters depends on the order of adding elements to set  That
> literally sucks!
>
> In any case, see you at Clojure West conference and thanks again for all
> the replies,
>
> Best regards,
> Andy
>
>
>
> --
> 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/groups/opt_out.
>

-- 
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/groups/opt_out.


Re: map semantics

2014-02-09 Thread Korny Sietsma
Agreed - there are always tradeoffs.  Another common example is that pretty
well any language that uses IEEE floating point is also breaking
referential transparency in the interest of pragmatism:

user=> (= 0.3 (+ 0.1 0.2))

false

user=> (= (bigdec 0.3) (+ (bigdec 0.1) (bigdec 0.2)))

true

- Korny
On 9 Feb 2014 01:00, "John Mastro"  wrote:

> To add just one more thing to this: Referential transparency is clearly
> valuable, but it's not the *only* valuable property a function or system
> might
> have. There are always tradeoffs to be made. Clojure has made different
> tradeoffs than you expected, or would yourself have made, but that doesn't
> /a priori/ mean they're wrong.
>
> - John
>
> John Mastro  wrote:
> > Hi Andy,
> >
> > Andy C  wrote:
> >>
> >>
> >>> user> (= s1 s2)
> >>> true
> >>> user> (= (seq s1) (seq s2))
> >>> false
> >>
> >>
> >> Thx. If a=b  then f(a) must = f(b). Something is broken here.
> >
> > If a seq is a sequential view of a thing, and a set is an unordered
> thing, then
> > it does not seem shocking to me that multiple sequential views of a
> given set,
> > with different orderings, are possible.
> >
> > This may not be the only way to do things; and it may not be the way
> other
> > languages do it; and it may not match your preference. But I think it's
> clearly
> > wrong to say that it's internally inconsistent or "broken".
> >
> > It's perhaps hard to say this without sounding condescending, but rather
> than
> > seeking to identify all the ways in which Clojure isn't Haskell, it
> might be
> > more useful to pursue an understanding of Clojure (including its
> > definitely-not-nonexistent flaws!) on its own terms.
> >
> > - 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
> ---
> 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/groups/opt_out.
>

-- 
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/groups/opt_out.


cljs, binding, async/go

2014-02-09 Thread t x
Hi,


## Consider this block of code:

(defn init [] ;; called from window.onload
   (def ^:dynamic *dvar*)

(binding [*dvar* 20]
  (. js/console log (str "from main: *dvar*: " *dvar*))
  (async/go
   (. js/console log (str "from go  : *dvar*: " *dvar*)


## In Chrome, I get back:

from main: *dvar*: 20
from go  : *dvar*: // returns nil

  I expect to get back:

from main: *dvar*: 20
from go  : *dvar*: 20


## Confusion:

* I was under the impression that go blocks works with binding/dynamic vars.

What am I doing wrong?

I'm using:

* [lein-cljsbuild "1.0.1-SNAPSHOT"]
* [lein-cljsbuild "1.0.1-SNAPSHOT"]
* [org.clojure/clojure "1.5.1"]

I get the same behavior in both Firefox 26.0 and Chrome 32.0.1700.107

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
--- 
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/groups/opt_out.


Re: cljs, binding, async/go

2014-02-09 Thread Timothy Baldridge
Gos work with bindings on CLJ, CLJs biding  support is different enough
that it doesn't currently work with gos.

Timothy


On Sun, Feb 9, 2014 at 7:33 AM, t x  wrote:

> Hi,
>
>
> ## Consider this block of code:
>
> (defn init [] ;; called from window.onload
>(def ^:dynamic *dvar*)
>
> (binding [*dvar* 20]
>   (. js/console log (str "from main: *dvar*: " *dvar*))
>   (async/go
>(. js/console log (str "from go  : *dvar*: " *dvar*)
>
>
> ## In Chrome, I get back:
>
> from main: *dvar*: 20
> from go  : *dvar*: // returns nil
>
>   I expect to get back:
>
> from main: *dvar*: 20
> from go  : *dvar*: 20
>
>
> ## Confusion:
>
> * I was under the impression that go blocks works with binding/dynamic
> vars.
>
> What am I doing wrong?
>
> I'm using:
>
> * [lein-cljsbuild "1.0.1-SNAPSHOT"]
> * [lein-cljsbuild "1.0.1-SNAPSHOT"]
> * [org.clojure/clojure "1.5.1"]
>
> I get the same behavior in both Firefox 26.0 and Chrome 32.0.1700.107
>
> 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
> ---
> 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/groups/opt_out.
>



-- 
"One of the main causes of the fall of the Roman Empire was that-lacking
zero-they had no way to indicate successful termination of their C
programs."
(Robert Firth)

-- 
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/groups/opt_out.


dynalint, lein-dynalint 0.1.3

2014-02-09 Thread Ambrose Bonnaire-Sergeant
Hi,

dynalint 0.1.3 has a bunch of improvements.

You can now configure linting with `configure-linting!`.

Stack traces now look a lot nicer, dynalint wrappers should disappear (
example ).

lein-dynalint 0.1.3 has a BREAKING CHANGE. The dynalint version must now be
specified manually in your profiles.clj or similar.

See the respective changelogs for more details.

[com.ambrosebs/dynalint "0.1.3"]


dynalint README 
dynalint CHANGELOG 

lein-dynalint README 
lein-dynalint 
CHANGELOG

Enjoy!
Ambrose

-- 
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/groups/opt_out.


Re: cljs, binding, async/go

2014-02-09 Thread t x
Hi Timothy,

  Useful to know this behavior is "normal" with respect to the current
state of cljs/core.async -- for the longest time I thought I was doing
something stupid / using wrong compiler options.

Thanks!

On Sun, Feb 9, 2014 at 6:35 AM, Timothy Baldridge  wrote:
> Gos work with bindings on CLJ, CLJs biding  support is different enough that
> it doesn't currently work with gos.
>
> Timothy
>
>
> On Sun, Feb 9, 2014 at 7:33 AM, t x  wrote:
>>
>> Hi,
>>
>>
>> ## Consider this block of code:
>>
>> (defn init [] ;; called from window.onload
>>(def ^:dynamic *dvar*)
>>
>> (binding [*dvar* 20]
>>   (. js/console log (str "from main: *dvar*: " *dvar*))
>>   (async/go
>>(. js/console log (str "from go  : *dvar*: " *dvar*)
>>
>>
>> ## In Chrome, I get back:
>>
>> from main: *dvar*: 20
>> from go  : *dvar*: // returns nil
>>
>>   I expect to get back:
>>
>> from main: *dvar*: 20
>> from go  : *dvar*: 20
>>
>>
>> ## Confusion:
>>
>> * I was under the impression that go blocks works with binding/dynamic
>> vars.
>>
>> What am I doing wrong?
>>
>> I'm using:
>>
>> * [lein-cljsbuild "1.0.1-SNAPSHOT"]
>> * [lein-cljsbuild "1.0.1-SNAPSHOT"]
>> * [org.clojure/clojure "1.5.1"]
>>
>> I get the same behavior in both Firefox 26.0 and Chrome 32.0.1700.107
>>
>> 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
>> ---
>> 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/groups/opt_out.
>
>
>
>
> --
> "One of the main causes of the fall of the Roman Empire was that-lacking
> zero-they had no way to indicate successful termination of their C
> programs."
> (Robert Firth)
>
> --
> 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/groups/opt_out.

-- 
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/groups/opt_out.


[Kind of off-topic] Enlightenment

2014-02-09 Thread Plínio Balduino
Hi there

I would like to know about your experiences of enlightenment, "a-ha!"
ou "now everything makes sense" when you finally understood how LISP
works and what's so hot about that language/family of languages. As
"LISP" I mean "any Lisp dialect, blessed or not by the good old
lispers".

I would to like to talk about it here, but I'm not sure if it's usual
or if it's a kind of 'urban legend' of software developers.

Thank you

Plínio

-- 
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/groups/opt_out.


Re: Ethereum

2014-02-09 Thread Stephan Tual
Yes - add me on skype (stephan.tual) and I'll put you in touch

On Sunday, February 9, 2014 4:48:58 AM UTC, jTA wrote:
>
> Has anyone a clojure-based project underway (or contemplating one) within 
> the Ethereum context?
> Ethereum background accessible here:  http://www.ethereum.org/   
> http://blog.ethereum.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 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/groups/opt_out.


Using Apache Daemon with Clojure

2014-02-09 Thread Aaron France

Hi,

I'm following the Clojure Cookbook blogpost[1] in order to Daemonize a
clojure application. Yet the provided code[2] does not work on my system.

When running the incantation to get JSVC to run, firstly I needed to
change it to use the full path to the JSVC binary. This is fine.

However, when it tries to run, it complains with:

"Cannot find daemon loader org/apache/commons/daemon/support/DaemonLoader"

Yet I am following their instructions *to the letter*.

Any ideas guys/gals?

Aaron


[1] http://www.rkn.io/2014/02/06/clojure-cookbook-daemons/
[2] https://github.com/clojure-cookbook/my-daemon


pgp20d1id1jmr.pgp
Description: PGP signature


[ANN] vim-typedclojure

2014-02-09 Thread Ambrose Bonnaire-Sergeant
Hi,

Good news for core.typed + vim users (which includes me)!

Check out vim-typedclojurefor
some fun.

Big thanks to Tim Pope for
vim-fireplace and
all his vim plugins
of which I've copied the format and style liberally from.

Enjoy!
Ambrose

-- 
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/groups/opt_out.


[ANN]: Buddy 0.1.0-beta3: Authentication, Authorization & Signing library for Clojure.

2014-02-09 Thread Andrey Antukh
Hi!

Buddy is an authentication, authorization and signing library for clojure,
designed with simplicity in mind.

Features / Sub libraries:
* Modular Authentication  (implemented using protocols).
* Modular Authorization (with access rules)
* Signing library.
* Password hashers library.

Is a still young library and any feedback / api improvement suggestions are
welcome.

Github: https://github.com/niwibe/buddy
Doc: http://niwibe.github.io/buddy/

Greetings.
Andrey


-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be 
https://github.com/niwibe

-- 
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/groups/opt_out.


Re: map semantics

2014-02-09 Thread Andy C
On Sun, Feb 9, 2014 at 4:46 AM, Michał Marczyk wrote:

The Contrib library algo.generic provides a function fmap which does
> preserve the type of its input.
>

Thanks for the pointer.


> So, these are some of the available conceptual arguments. There is
> also a rather convincing practical argument in the form of the
> existing body of Clojure code, written using the existing Clojure core
> library and its conventions and achieving, in many cases, amazing
> levels of clarity and concision



Clojure is indeed very coherent with a few exceptions called "design
trade-offs" :-). Deriving from Lisp wisdom and expanding those powerful
concepts into a modern programming is priceless.

It is all good now.

Pozdr,
Andy

-- 
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/groups/opt_out.


Re: [Kind of off-topic] Enlightenment

2014-02-09 Thread Duong BaTien
Yes, please.

We are at the cross road where both positive and normative values can in
parts of the modeling to know more about oneself and the environments we
are parts.

BaTien


On Sun, Feb 9, 2014 at 8:15 AM, Plínio Balduino  wrote:

> Hi there
>
> I would like to know about your experiences of enlightenment, "a-ha!"
> ou "now everything makes sense" when you finally understood how LISP
> works and what's so hot about that language/family of languages. As
> "LISP" I mean "any Lisp dialect, blessed or not by the good old
> lispers".
>
> I would to like to talk about it here, but I'm not sure if it's usual
> or if it's a kind of 'urban legend' of software developers.
>
> Thank you
>
> Plínio
>
> --
> 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/groups/opt_out.
>



-- 
Dr. Duong BaTien
DBGROUPS & BudhNet

-- 
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/groups/opt_out.


Re: [ANN]: Buddy 0.1.0-beta3: Authentication, Authorization & Signing library for Clojure.

2014-02-09 Thread john walker
I love the documentation. Thanks for building this.

On Sunday, February 9, 2014 11:54:59 AM UTC-5, Andrey Antukh wrote:
>
> Hi!
>
> Buddy is an authentication, authorization and signing library for clojure, 
> designed with simplicity in mind.
>
> Features / Sub libraries:
> * Modular Authentication  (implemented using protocols).
> * Modular Authorization (with access rules)
> * Signing library.
> * Password hashers library.
>
> Is a still young library and any feedback / api improvement suggestions 
> are welcome.
>
> Github: https://github.com/niwibe/buddy
> Doc: http://niwibe.github.io/buddy/ 
>
> Greetings.
> Andrey
>
>
> -- 
> Andrey Antukh - Андрей Антух - > / <
> ni...@niwi.be >
> http://www.niwi.be 
> https://github.com/niwibe
>  

-- 
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/groups/opt_out.


Re: [ANN]: Buddy 0.1.0-beta3: Authentication, Authorization & Signing library for Clojure.

2014-02-09 Thread Bastien
Hi Andrey,

Andrey Antukh  writes:

> Is a still young library and any feedback / api improvement
> suggestions are welcome.

Great to see new efforts in this area, thanks!
And the documentation is clear.

How does it compare to Chas Friend?
  https://github.com/cemerick/friend

Thanks in advance!

-- 
 Bastien

-- 
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/groups/opt_out.


Re: [ANN]: Buddy 0.1.0-beta3: Authentication, Authorization & Signing library for Clojure.

2014-02-09 Thread Andrey Antukh
Hi Bastien

2014-02-09 19:57 GMT+01:00 Bastien :

> Hi Andrey,
>
> Andrey Antukh  writes:
>
> > Is a still young library and any feedback / api improvement
> > suggestions are welcome.
>
> Great to see new efforts in this area, thanks!
> And the documentation is clear.
>
> How does it compare to Chas Friend?
>   https://github.com/cemerick/friend


Friend is a good library, but I don't like its approach. I think, that
friend mix concepts.

In my opinion, authentication should be clearly separated from
authorization, authorization  can be splitted in distinct reusable modules,
So, allowing
an easy composability between components.

An other very important goal of the project is to have good documentation.
I have very poor English and if any one can help to fix any language
issue, I'll be very grateful.

In conclusion: buddy has very distinct approach than friend, and each
approach has advantages and disadvantages.

Greetings.
Andrey




>
>
> Thanks in advance!
>
> --
>  Bastien
>
> --
> 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/groups/opt_out.
>



-- 
Andrey Antukh - Андрей Антух -  / 
http://www.niwi.be 
https://github.com/niwibe

-- 
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/groups/opt_out.


Re: [ANN]: Buddy 0.1.0-beta3: Authentication, Authorization & Signing library for Clojure.

2014-02-09 Thread Bastien
Hi Andrey,

Andrey Antukh  writes:

> An other very important goal of the project is to have good
> documentation. I have very poor English and if any one can help to
> fix any language issue, I'll be very grateful.

I just forked your repo on github and will help fixing a few typos
I'm no native english speaker, so that's all I can decently promise
to do.  That'll help me grok the core concepts at least.

Thanks,

-- 
 Bastien

-- 
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/groups/opt_out.


Handy clojure function to transform prepared statement queries

2014-02-09 Thread Jan Herich
Hello folks,

In the last days, i was working with clojure/java.jdbc and yesql libraries 
(which are both great piece of work), 
the experience was overall very positive, but one thing bothered me, that i 
was unable to use plain prepared 
statements (and sadly, yesql) when working with IN clauses and collection 
values as arguments for prepared
statements. So i created following helper function to help with generating 
correct prepared statements:

(ns db-util
  (:require [clojure.string :as str]))
 
(def ^:private placeholders-for (comp (partial str/join ",") #(repeat % '?) 
count))
 
(defn in-statement
  "Takes a prepared SQL statement and variable number of arguments, which may be
   also collection values. Replace all occurences of IN (?) with spliced out 
values
   such as IN (?,?,?) where number of placeholder characters is the same as 
count
   of elements in corresponding argument which is assumed to be a collection.
   In case that collection argument has only one element, IN (?) is transformed
   into more effective = ? form. Placeholders in query which don't corresponds 
to
   collection arguments are unnafected. Returns vector, with first item of the
   vector as transformed prepared SQL statement and rest as spliced out 
arguments."
  [statement & args]
  (let [in-placeholders-positions (->> (re-seq #"\?|IN \(\?\)" statement)
   (map vector (iterate inc 0))
   (filter #(= (second %) "IN (?)"))
   (map first)
   (set))
in-placeholders-args (->> args
  (map vector (iterate inc 0))
  (filter #(contains? in-placeholders-positions 
(first %)))
  (map second))
expanded-statement (reduce (fn [acc arg]
 (str/replace-first acc #"IN \(\?\)"
(if (> (count arg) 1)
  (str "IN (" 
(placeholders-for arg) ")")
  "= ?")))
   statement in-placeholders-args)
unspliced-args (->> args
(map #(if (coll? %) (seq %) %))
(flatten))]
(into [] (cons expanded-statement unspliced-args
 
;; following holds true
(= (in-statement "id = ? AND user_id IN (?) AND msg_id IN (?)" 1 #{2 3 4} #{5})
   ["id = ? AND user_id IN (?,?,?) AND msg_id = ?" 1 2 3 4 5])

Now my question is, do you think that something in this flavor would be good 
addition to clojure/java.jdbc
or yesql libraries (the latter one is probably more appropriate for inclusion) 
? If so, i will try to refine and 
generalize my solution, think about how to integrate it and then issue an pull 
request.

Cheers Jan  

-- 
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/groups/opt_out.


Re: [ANN]: Buddy 0.1.0-beta3: Authentication, Authorization & Signing library for Clojure.

2014-02-09 Thread Joshua Ballanco
On Sunday, February 9, 2014 at 18:54, Andrey Antukh wrote:
> Hi!
>  
> Buddy is an authentication, authorization and signing library for clojure, 
> designed with simplicity in mind.
>  
> Features / Sub libraries:
> * Modular Authentication (implemented using protocols).
> * Modular Authorization (with access rules)
> * Signing library.
> * Password hashers library.
>  
> Is a still young library and any feedback / api improvement suggestions are 
> welcome.  
>  
> Github: https://github.com/niwibe/buddy
> Doc: http://niwibe.github.io/buddy/


I suppose I shall wait for the inevitable third Clojure 
authentication/authorization library named “guy”. ;-)

But in all seriousness, this is definitely an interesting and different take on 
the problem space from Friend. In particular, separating the 
authentication/authorization workflow into its own data structure, as opposed 
to Friend’s technique of mixing the workflow in with the middleware 
declaration, is kind of nice. At least at first glance it seems like this 
approach may be more composable. I’ll need to stare at it all a bit longer 
before I have any concrete suggestions/feedback…well, other than some of the 
API functions being a bit wordy, but that’s bound to happen with an early API.

I’ll follow up on GitHub (in particular, I think one of your examples could use 
some refactoring).

Cheers,

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
--- 
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/groups/opt_out.


ANN: core.logic 0.8.7

2014-02-09 Thread David Nolen
This release just fixes a bug around aliased logic vars and the new
constraint verification functionality.

More information here: http://github.com/clojure/core.logic

Feedback welcome!

-- 
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/groups/opt_out.


Re: Handy clojure function to transform prepared statement queries

2014-02-09 Thread Sean Corfield
As maintainer of java.jdbc I'd say this is a more appropriate feature
for a DSL library like SQLingvo or HoneySQL (which may already support
something like this - I haven't checked).

Sean

On Sun, Feb 9, 2014 at 12:40 PM, Jan Herich  wrote:
> Hello folks,
>
> In the last days, i was working with clojure/java.jdbc and yesql libraries
> (which are both great piece of work),
> the experience was overall very positive, but one thing bothered me, that i
> was unable to use plain prepared
> statements (and sadly, yesql) when working with IN clauses and collection
> values as arguments for prepared
> statements. So i created following helper function to help with generating
> correct prepared statements:
>
> (ns db-util
>   (:require [clojure.string :as str]))
>
> (def ^:private placeholders-for (comp (partial str/join ",") #(repeat % '?)
> count))
>
> (defn in-statement
>   "Takes a prepared SQL statement and variable number of arguments, which
> may be
>also collection values. Replace all occurences of IN (?) with spliced out
> values
>such as IN (?,?,?) where number of placeholder characters is the same as
> count
>of elements in corresponding argument which is assumed to be a
> collection.
>In case that collection argument has only one element, IN (?) is
> transformed
>into more effective = ? form. Placeholders in query which don't
> corresponds to
>collection arguments are unnafected. Returns vector, with first item of
> the
>vector as transformed prepared SQL statement and rest as spliced out
> arguments."
>   [statement & args]
>   (let [in-placeholders-positions (->> (re-seq #"\?|IN \(\?\)" statement)
>(map vector (iterate inc 0))
>(filter #(= (second %) "IN (?)"))
>(map first)
>(set))
> in-placeholders-args (->> args
>   (map vector (iterate inc 0))
>   (filter #(contains?
> in-placeholders-positions (first %)))
>   (map second))
> expanded-statement (reduce (fn [acc arg]
>  (str/replace-first acc #"IN \(\?\)"
> (if (> (count arg)
> 1)
>   (str "IN ("
> (placeholders-for arg) ")")
>   "= ?")))
>statement in-placeholders-args)
> unspliced-args (->> args
> (map #(if (coll? %) (seq %) %))
> (flatten))]
> (into [] (cons expanded-statement unspliced-args
>
> ;; following holds true
> (= (in-statement "id = ? AND user_id IN (?) AND msg_id IN (?)" 1 #{2 3 4}
> #{5})
>["id = ? AND user_id IN (?,?,?) AND msg_id = ?" 1 2 3 4 5])
>
> Now my question is, do you think that something in this flavor would be good
> addition to clojure/java.jdbc
> or yesql libraries (the latter one is probably more appropriate for
> inclusion) ? If so, i will try to refine and
> generalize my solution, think about how to integrate it and then issue an
> pull request.
>
> Cheers Jan
>
> --
> 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/groups/opt_out.



-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

"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/groups/opt_out.


Re: Using Apache Daemon with Clojure

2014-02-09 Thread Ryan Neufeld
Hey Aaron,

I've responded on GitHub where you entered an 
issue: https://github.com/clojure-cookbook/my-daemon/issues/1

-Ryan

On Sunday, February 9, 2014 11:25:21 AM UTC-5, Aaron France wrote:
>
>
> Hi, 
>
> I'm following the Clojure Cookbook blogpost[1] in order to Daemonize a 
> clojure application. Yet the provided code[2] does not work on my system. 
>
> When running the incantation to get JSVC to run, firstly I needed to 
> change it to use the full path to the JSVC binary. This is fine. 
>
> However, when it tries to run, it complains with: 
>
> "Cannot find daemon loader org/apache/commons/daemon/support/DaemonLoader" 
>
> Yet I am following their instructions *to the letter*. 
>
> Any ideas guys/gals? 
>
> Aaron 
>
>
> [1] http://www.rkn.io/2014/02/06/clojure-cookbook-daemons/ 
> [2] https://github.com/clojure-cookbook/my-daemon 
>

-- 
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/groups/opt_out.


Re: unconditional append to end

2014-02-09 Thread Alan Thompson
Holy cow!  Where have these been hiding!  They don't show up on
ClojureDocs.org at all!!!  I was about to write my own macro vmap to
implement (vec (map(...)) for just the use cases outlined above.

I just looked on clojure.org, and searching on "map" doesn't return any
(useful) results.  I eventually found it alphabetically on a sub-page in
the API area.

I saw an email a while back that claimed ClojureDocs.org is working on a
re-write of the site, and an upgrade from Clojure 1.2 to 1.5.  In the
meantime, is there a better way of exploring the API?

Alan



On Sat, Feb 8, 2014 at 1:44 AM, mynomoto  wrote:

> Maybe you could use mapv and filterv? This way you will always get a
> vector and conj apends in the end.
>
>
> On Friday, February 7, 2014 10:20:09 PM UTC-2, t x wrote:
>>
>> Consider the following:
>>
>> (cons 1 '(2 3 4)) ==> (1 2 3 4)
>> (cons 1 [2 3 4])  ==> (1 2 3 4)
>>
>> (conj '(a b c) 1) ==> (1 a b c)
>> (conj '[a b c] 1) ==> [a b c 1]
>>
>>
>> 
>>
>> Now, I would like something that _always_
>>   * appends to the end
>>
>> cons is almost what I want, except it always appends to front.
>>
>> conj is not what I want -- in fact, I'm afraid of conj. Often times,
>> I'll run map/filter on something, and suddenly, instead of a vector, I
>> now have a list -- and conj changes the order of the item added.
>>
>> Thus, my question: is there a builtin to _unconditinoally_ append to
>> the end of a list/sequence/vector?
>>
>> 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
> ---
> 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/groups/opt_out.
>

-- 
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/groups/opt_out.


Re: unconditional append to end

2014-02-09 Thread Mars0i
On Sunday, February 9, 2014 10:45:04 PM UTC-6, Alan Thompson wrote:
>
> ...
> I saw an email a while back that claimed ClojureDocs.org is working on a 
> re-write of the site, and an upgrade from Clojure 1.2 to 1.5.  In the 
> meantime, is there a better way of exploring the API?
>

Not a full answer, but I get a lot of mileage from the cheatsheet: 
http://clojure.org/cheatsheet 

-- 
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/groups/opt_out.


Re: [Kind of off-topic] Enlightenment

2014-02-09 Thread Mars0i
I don't think I ever had an a-ha moment with Lisp per se, because it was 
one of the first languages I learned.  But Friedman and Felleisen's *The 
Little Schemer* (then titled *The Little Lisper*) was a revelation.  I 
didn't understand recursion until I worked through it, and it was also only 
then that I fully grokked some basic things you can do with lists.  (Plus 
... it has the applicative order Y-combinator.  If you've been there, you 
know what I mean.)

On Sunday, February 9, 2014 9:15:14 AM UTC-6, Plinio Balduino wrote:
>
> Hi there 
>
> I would like to know about your experiences of enlightenment, "a-ha!" 
> ou "now everything makes sense" when you finally understood how LISP 
> works and what's so hot about that language/family of languages. As 
> "LISP" I mean "any Lisp dialect, blessed or not by the good old 
> lispers". 
>
> I would to like to talk about it here, but I'm not sure if it's usual 
> or if it's a kind of 'urban legend' of software developers. 
>
> Thank you 
>
> Plínio 
>

-- 
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/groups/opt_out.


Re: unconditional append to end

2014-02-09 Thread mynomoto
+1 to the Cheat Sheet although I prefer this 
version: 
http://jafingerhut.github.io/cheatsheet-clj-1.3/cheatsheet-tiptip-cdocs-summary.html

After you go though the cheat sheet you can try 
http://clojure.github.io/clojure
It's more complete but way less nice.

On Monday, February 10, 2014 3:21:16 AM UTC-2, Mars0i wrote:
>
> On Sunday, February 9, 2014 10:45:04 PM UTC-6, Alan Thompson wrote:
>>
>> ...
>> I saw an email a while back that claimed ClojureDocs.org is working on a 
>> re-write of the site, and an upgrade from Clojure 1.2 to 1.5.  In the 
>> meantime, is there a better way of exploring the API?
>>
>
> Not a full answer, but I get a lot of mileage from the cheatsheet: 
> http://clojure.org/cheatsheet
>  
>

-- 
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/groups/opt_out.