Re: wouldn't it make sense for identity to take variadic args?

2013-03-06 Thread Gary Verhaegen
The multi-arity version of your function, which I would definitely not
call identity, could be something along the lines of
(fn [& args] (first args))

On 27 February 2013 14:22, Jim foo.bar  wrote:
> On 27/02/13 13:10, Marko Topolnik wrote:
>
> A side note: since spans? is a constant within the map transform, it would
> pay to decide up-front which function to use:
>
>
> nice catch!
>
> Jim
>
> ps: thanks a lot for your comments :)
>
> --
> --
> 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: wouldn't it make sense for identity to take variadic args?

2013-02-27 Thread Jim foo.bar

On 27/02/13 13:10, Marko Topolnik wrote:
A side note: since /spans?/ is a constant within the /map/ transform, 
it would pay to decide up-front which function to use:


nice catch!

Jim

ps: thanks a lot for your comments :)

--
--
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: wouldn't it make sense for identity to take variadic args?

2013-02-27 Thread Marko Topolnik


On Wednesday, February 27, 2013 2:02:36 PM UTC+1, Jim foo.bar wrote:
>
>  The actual code looks like this:
>
> (let [tok-array (into-array ^String token-seq)]
> (map 
>  #((if spans? (fn [span _] span) spans->strings) ;;decide what fn to use
>  (.find this tok-array) tok-array) 
> token-seq) 
>
> As you can see I am sort of creating my own version of identity (fn [span 
> _] span) because I cannot use 'identity' with 2 args. This is my 
> use-case...It should make sense now yes?
>
> Jim
>

Yes, that's it. As I said, I wouldn't want *identity* to do that and find 
it perfectly reasonable to require a special function for this behavior. A 
side note: since *spans?* is a constant within the *map* transform, it 
would pay to decide up-front which function to use:

 (let [f (if spans? (fn [span _] span) spans->strings)]
  (map f (.find this tok-array) tok-array)) 

-- 
-- 
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: wouldn't it make sense for identity to take variadic args?

2013-02-27 Thread Jim foo.bar

On 27/02/13 12:52, Marko Topolnik wrote:

In this line:

(map (if even? (fn [num _] (identity spans)) str)  some-seq1 some-seq2)

you appear to involve /identity/ in a way that makes no sense since 
(identity spans) is just spans. You also don't involve the 
/num/ argument at all; but maybe you meant


Ooops!
I do apologize cos in my effort to provide a minimal example I 
copy-pasted wrongly! The actual code looks like this:


(let [tok-array (into-array ^String token-seq)]
(map
 #((if spans? (fn [span _] span) spans->strings) ;;decide what fn to use
 (.find this tok-array) tok-array)
token-seq)

As you can see I am sort of creating my own version of identity (fn 
[span _] span) because I cannot use 'identity' with 2 args. This is my 
use-case...It should make sense now yes?


Jim

--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
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: wouldn't it make sense for identity to take variadic args?

2013-02-27 Thread Marko Topolnik
In this line:

(map (if even? (fn [num _] (identity spans)) str)  some-seq1 some-seq2) 

you appear to involve *identity* in a way that makes no sense since 
(identity spans) is just spans. You also don't involve the *num* argument 
at all; but maybe you meant

(map (if even? (fn [num _] num) str)  some-seq1 some-seq2) 

Then I'd see what you mean, even though I wouldn't call that function *
identity* because it clearly does something more specialized than a no-op: 
it *ignores* the element coming from some-seq2. It would be quite confusing 
to see a function named *identity* do that.


On Wednesday, February 27, 2013 1:39:54 PM UTC+1, Jim foo.bar wrote:
>
> On 27/02/13 12:35, Marko Topolnik wrote: 
> > it is a function that transforms its argument into itself. It is 
> > useful in the context of higher-order functions where it plays the 
> > role of a no-op 
>
> that is exactly what I'm trying to do..a no-op based on some 
> condition...Though, I can see why  it would be confusing to just return 
> the first arg...what exactly makes no sense? 
>
> Jim 
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
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: wouldn't it make sense for identity to take variadic args?

2013-02-27 Thread Jim foo.bar

On 27/02/13 12:35, Marko Topolnik wrote:
it is a function that transforms its argument into itself. It is 
useful in the context of higher-order functions where it plays the 
role of a no-op


that is exactly what I'm trying to do..a no-op based on some 
condition...Though, I can see why  it would be confusing to just return 
the first arg...what exactly makes no sense?


Jim

--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
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: wouldn't it make sense for identity to take variadic args?

2013-02-27 Thread Marko Topolnik
Apparently you misunderstand the term *identity*. The sense is the same as 
in *identity transform*: it is a function that transforms its argument into 
itself. It is useful in the context of higher-order functions where it 
plays the role of a no-op. None of your uses of *identity* make sense to me.


On Wednesday, February 27, 2013 1:20:56 PM UTC+1, Jim foo.bar wrote:
>
> On 27/02/13 12:12, Chris Ford wrote: 
> > Can you give an example use case? 
>
> sure... sometimes I do something this: 
>
> (map (if even? (fn [num _] (identity spans)) str)  some-seq1 some-seq2) 
>
> but I'd like to write this instead: 
>
> (map (if even? identity str)  some-seq1 some-seq2) 
>
> > Personally, I would be a little surprised to find out that identity 
> > worked like this. After all, why return the first argument, why not 
> > the last? Or a vector of all the arguments? 
>
> the idea is to we keep the same semantics as we currently have... 
>
> Jim 
>
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
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: wouldn't it make sense for identity to take variadic args?

2013-02-27 Thread Jim foo.bar
thinking about it a bit more, it would certainly make sense to return a 
seq with all the identities. Then I can just ask for the first...hmm 
interesting :)


Jim


On 27/02/13 12:20, Jim foo.bar wrote:

On 27/02/13 12:12, Chris Ford wrote:

Can you give an example use case?


sure... sometimes I do something this:

(map (if even? (fn [num _] (identity spans)) str)  some-seq1 some-seq2)

but I'd like to write this instead:

(map (if even? identity str)  some-seq1 some-seq2)

Personally, I would be a little surprised to find out that identity 
worked like this. After all, why return the first argument, why not 
the last? Or a vector of all the arguments?


the idea is to we keep the same semantics as we currently have...

Jim





--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
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: wouldn't it make sense for identity to take variadic args?

2013-02-27 Thread Jim foo.bar

On 27/02/13 12:12, Chris Ford wrote:

Can you give an example use case?


sure... sometimes I do something this:

(map (if even? (fn [num _] (identity spans)) str)  some-seq1 some-seq2)

but I'd like to write this instead:

(map (if even? identity str)  some-seq1 some-seq2)

Personally, I would be a little surprised to find out that identity 
worked like this. After all, why return the first argument, why not 
the last? Or a vector of all the arguments?


the idea is to we keep the same semantics as we currently have...

Jim



--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
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: wouldn't it make sense for identity to take variadic args?

2013-02-27 Thread Chris Ford
Can you give an example use case?

Personally, I would be a little surprised to find out that identity worked
like this. After all, why return the first argument, why not the last? Or a
vector of all the arguments?

Cheers,

Chris

On 27 February 2013 15:02, Jim foo.bar  wrote:

> I often find myself asking for identity of something but identity takes a
> single argument! Why not have it take as many as one likes but only return
> the identity of the first? I find that very handy...do people agree?
>
> (defn identity
> "Returns its argument or its first argument when there are more."
> {:added "1.0"
> :static true}
> ([x] x)
> ([x & more] x))
>
> Jim
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscribe@**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+unsubscribe@**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.




wouldn't it make sense for identity to take variadic args?

2013-02-27 Thread Jim foo.bar
I often find myself asking for identity of something but identity takes 
a single argument! Why not have it take as many as one likes but only 
return the identity of the first? I find that very handy...do people agree?


(defn identity
"Returns its argument or its first argument when there are more."
{:added "1.0"
:static true}
([x] x)
([x & more] x))

Jim

--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
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.