```Here's a coding challenge you.

The R language has the following nifty features for working with arrays. To
what degree can you get Ruby to do the same?

The solution that is closest/nicest gets forever embedded in my growing
library of Ruby enhancements, and it's author's name wrapped in shiny
asterisks and number signs! Joy, joy! :)

Listing 1. Elementwise operations in R

> a = 1:10            # Range of numbers 1 through 10
> b = a+5             # Add 5 to each element
> b                   # Show b vector
[1]  6  7  8  9 10 11 12 13 14 15

Or you can operate selectively only on elements with certain indices, by using
an "index array":

Listing 2. Using index arrays to select elements

> c = b               # Make a (lazy) copy of b
> pos = c(1,2,3,5,7)  # Change the prime indices
> c[pos] = c[pos]*10  # Reassign to indexed positions
> c                   # Show c vector
[1]  60  70  80   9 100  11 120  13  14  15

Or, maybe best of all, you can use a syntax much akin to list comprehensions
in Haskell or Python, and only operate on elements that have a desired
property:

Listing 3. Using predicates to select elements

> d = c
> d[d %% 2 == 0] = -1 # Reassign -1 to all even elements
> d
[1] -1 -1 -1  9 -1 11 -1 13 -1 15

---

Note, I've gotten pretty far on my own solution, but can't seem to get passed
a certain point --the Functor class I presented a week or so ago has proven
useful.

Finally special thanks to Martin DeMello who got me hell bent on this ;)

T.

```