Jason Nordwick
9/13/2006 5:13:00 PM
I think...
a.values_at(*(0...a.size).to_a.select {|i| f(a[i]) && g([i-3,0].max..[i+3,a.size-1].min)})
Ruby seems a little verbose on this one.
-j
Peter Booth wrote:
> I am reading Ruby for Rails and Ruby Cookbock and delighted by the
> Array#find_all and Enumerable#collect methods. I'm wondering what the
> idiomatic way to do the following is?
>
> Two parallel arrays A, B . For each element n of A for which f(An) is true,
> is g(B[n-3:n+3]) true? Where B[n-3:n+3] refers to seven elements of B whose
> position is centered over An' position.
>
> Can the block inside Enumerable#collect know it's position inside the
> Enumerable? Can one collect two parallel arrays?
>
> Peter
> ----------------------------------------------------------------------------
> ----------------------------------------
>
> The information contained in and accompanying this communication is strictly
> confidential and intended solely for the use of the intended recipient(s).
> If you have received it by mistake please let us know by reply and then
> delete it from your system; you should not copy the message or disclose its
> content to anyone.
> MarketAxess reserves the right to monitor the content of emails sent to or
> from its systems.
> Any comments or statements made are not necessarily those of MarketAxess.
> For more information, please visit www.marketaxess.com. MarketAxess Europe
> Limited is regulated in the UK by the FSA, registered in England no.
> 4017610, registered office at 71 Fenchurch Street, London, EC3M 4BS.
> Telephone (020) 7709 3100.
> MarketAxess Corporation is regulated in the USA by the SEC and the NASD,
> incorporated in Delaware, executive offices at 140 Broadway, New York, NY
> 10005. Telephone (1) 212 813 6000.
>
>