- **Ruby**
(*http://www.velocityreviews.com/forums/f66-ruby.html*)

- - **array dynamic intersection and union**
(*http://www.velocityreviews.com/forums/t865907-array-dynamic-intersection-and-union.html*)

array dynamic intersection and unionHello,
I was wondering If could intersect and union array dynamic in my code. Let us say I have these conditions. array = A & B | (C & D ) & E Is their any ways of doing these stuff dynamic if all the objects was arrays. A = [1,2,3,4,5] Thanks for any help. -- Posted via http://www.ruby-forum.com/. |

Re: array dynamic intersection and unionOn Jan 14, 2011, at 4:07 PM, Jamal Soueidan wrote:
> Hello, > > I was wondering If could intersect and union array dynamic in my code. > > Let us say I have these conditions. > > array = A & B | (C & D ) & E > > > Is their any ways of doing these stuff dynamic if all the objects was > arrays. > > A = [1,2,3,4,5] > > > Thanks for any help. > Why don't you try a few examples and find out? If you still have questions, then at least you can point to actual code to clarify where you need help. -Rob Rob Biedenharn Rob@AgileConsultingLLC.com http://AgileConsultingLLC.com/ rab@GaslightSoftware.com http://GaslightSoftware.com/ |

Re: array dynamic intersection and unionHello Rob,
Sorry I did not explain myself first time. But I let us say I have these hashes. rule = {:array => [1,2,3,4], :condition => "AND"} rule2 = {:array => [1,2,3,4], :condition => "OR"} rule3 = {:array => [3,4]} How can I intersection and union based on the conditions in the hash through them all? So it end up like this array = rule[:array] & rule2[:array] | rule3[:array] -- Posted via http://www.ruby-forum.com/. |

Re: array dynamic intersection and unionOn Jan 14, 2011, at 5:39 PM, Jamal Soueidan wrote:
> Hello Rob, > > Sorry I did not explain myself first time. > > But I let us say I have these hashes. > > rule = {:array => [1,2,3,4], :condition => "AND"} > rule2 = {:array => [1,2,3,4], :condition => "OR"} > rule3 = {:array => [3,4]} > > How can I intersection and union based on the conditions in the hash > through them all? > > So it end up like this > > array = rule[:array] & rule2[:array] | rule3[:array] Let me rephrase that because you still aren't giving enough information to really know what you're trying to do. Given an array of hashes: input = [ {:array => [1,2,3,4], :condition => "AND"}, {:array => [2,4,6,8], :condition => "OR"}, {:array => [1,3]}, ] array = input[0][:array] & input[1][:array] | input[2][:array] => [2, 4, 1, 3] Well, if you apply the operations serially, you will actually get something like: array = ((input[0][:array] & input[1][:array]) | input[2][:array]) Since & is higher precendence than |, the answer is the same, but if you change the order: array = input[0][:array] | input[1][:array] & input[2][:array] => [1, 2, 3, 4] is not the same as: array = ((input[0][:array] | input[1][:array]) & input[2][:array]) => [1, 3] def combine(arrays) result, op = [], "OR" arrays.each do |hsh| case op when "OR" result |= hsh[:array] when "AND" result &= hsh[:array] end op = hsh[:condition] end result end combine(input) #=> [2, 4, 1, 3] -Rob Rob Biedenharn Rob@AgileConsultingLLC.com http://AgileConsultingLLC.com/ rab@GaslightSoftware.com http://GaslightSoftware.com/ |

All times are GMT. The time now is 12:29 PM. |

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.

SEO by vBSEO ©2010, Crawlability, Inc.