Re: Repeating a vector n times

2011-07-13 Thread Ken Wesson
On Wed, Jul 13, 2011 at 5:17 PM, Sam Ritchie  wrote:
> Ken, that'll result in the original vector back out again.
> (vec (take 3 (cycle [1 2 3]))) => [1 2 3].
> I think you mean:
> (vec (take (* n (count xs)) (cycle xs

I wasn't using "n" to mean the number of repetitions of the xs but the
total number of desired elements. One advantage of this method is if
you want the first 20 elements from repeating a vector of seven items
it won't set your hair on fire. :)

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

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


Re: Repeating a vector n times

2011-07-13 Thread Sam Ritchie
Ken, that'll result in the original vector back out again.

(vec (take 3 (cycle [1 2 3]))) => [1 2 3].

I think you mean:

(vec (take (* n (count xs)) (cycle xs

On Wed, Jul 13, 2011 at 5:13 PM, Ken Wesson  wrote:

> On Wed, Jul 13, 2011 at 11:21 AM, Bhinderwala, Shoeb
>  wrote:
> > Thanks Tamreen. Your solution will have to be wrapped in another vec
> call. I
> > will use Miekel’s:
> >
> >
> >
> >(reduce into [] (repeat n xs)).
>
> What about (vec (take n (cycle xs)))?
>
> --
> Protege: What is this seething mass of parentheses?!
> Master: Your father's Lisp REPL. This is the language of a true
> hacker. Not as clumsy or random as C++; a language for a more
> civilized age.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
>

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

Re: Repeating a vector n times

2011-07-13 Thread Ken Wesson
On Wed, Jul 13, 2011 at 11:21 AM, Bhinderwala, Shoeb
 wrote:
> Thanks Tamreen. Your solution will have to be wrapped in another vec call. I
> will use Miekel’s:
>
>
>
>    (reduce into [] (repeat n xs)).

What about (vec (take n (cycle xs)))?

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

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


RE: Repeating a vector n times

2011-07-13 Thread Bhinderwala, Shoeb
Thanks Tamreen. Your solution will have to be wrapped in another vec
call. I will use Miekel's:

 

   (reduce into [] (repeat n xs)).

 



From: clojure@googlegroups.com [mailto:clojure@googlegroups.com] On
Behalf Of Tamreen Khan
Sent: Wednesday, July 13, 2011 11:02 AM
To: clojure@googlegroups.com
Subject: Re: Repeating a vector n times

 

Damn, Meikel's solution is better, I was thinking:

 

(apply concat (repeat n xs))

 

On Wed, Jul 13, 2011 at 10:54 AM, Bhinderwala, Shoeb
 wrote:

I have to write a function that will take a vector as input, repeat the
elements multiple times and return back a single vector of the repeated
items. I came up with the following but am wondering if there is a
better or simpler way to write this:

(def xs ["a" "b" "c"])

(defn repeat-vec-n 

  [xs n]

  (vec 

(reduce concat [] 

  (take n (repeat xs)

OUTPUT:

user=> xs

["a" "b" "c"]

user=> (repeat-vec-n xs 3)

["a" "b" "c" "a" "b" "c" "a" "b" "c"]

-- Shoeb

-- 
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
<mailto:clojure%2bunsubscr...@googlegroups.com> 
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

 

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

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

Re: Repeating a vector n times

2011-07-13 Thread Tamreen Khan
Damn, Meikel's solution is better, I was thinking:

(apply concat (repeat n xs))

On Wed, Jul 13, 2011 at 10:54 AM, Bhinderwala, Shoeb <
sabhinderw...@wellington.com> wrote:

> **
>
> I have to write a function that will take a vector as input, repeat the
> elements multiple times and return back a single vector of the repeated
> items. I came up with the following but am wondering if there is a better
> or simpler way to write this:
>
> (def xs ["a" "b" "c"])
>
> (defn repeat-vec-n
>
>   [xs n]
>
>   (vec
>
> (reduce concat []
>
>   (take n (repeat xs)
>
> OUTPUT:
>
> user=> xs
>
> ["a" "b" "c"]
>
> user=> (repeat-vec-n xs 3)
>
> ["a" "b" "c" "a" "b" "c" "a" "b" "c"]
>
> ***-- Shoeb*
>
>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en

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

Aw: Repeating a vector n times

2011-07-13 Thread Meikel Brandmeyer
Hi,

you could use (reduce into [] (repeat n xs)).

Sincerely
Meikel

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

Repeating a vector n times

2011-07-13 Thread Bhinderwala, Shoeb
I have to write a function that will take a vector as input, repeat the
elements multiple times and return back a single vector of the repeated
items. I came up with the following but am wondering if there is a
better or simpler way to write this:

(def xs ["a" "b" "c"])

(defn repeat-vec-n 
  [xs n]
  (vec 
(reduce concat [] 
  (take n (repeat xs)

OUTPUT:
user=> xs
["a" "b" "c"]

user=> (repeat-vec-n xs 3)
["a" "b" "c" "a" "b" "c" "a" "b" "c"]

-- Shoeb

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