Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
Array of Pairs data structure?
Greg Willits
10/25/2007 6:40:00 AM
In a language called Lasso I am used to a data structure of an array of
pairs:
$simpleArray = array( 'color', 'shape', 'size')
$arrayofPairs = array( 'color' = 'red', 'shape' = 'trapezoid', 'size' =
'small')
$simpleMap = map( 'color' = 'red', 'shape' = 'trapezoid', 'size' =
'small')
The difference between arrayofPairs and simpleMap is that the map (hash)
cannot gaurantee a specific order whereas the arrayofPairs does. It's an
array, so order is preserved. It also has what effectively works just
like hash keys. I can find, retrieve, and even sort based on the first
element of the pair. Lasso has a primitive data type of a Pair.
Does Ruby have a way to create this arrayofPairs? I don't see a data
type like a "pair" in Ruby, so not sure what to insert into each array
element to net this same data structure except I guess maybe an array of
single key hashes?
ideas? Thanks.
-- gw
--
Posted via
http://www.ruby-...
.
3 Answers
Greg Willits
10/25/2007 7:18:00 AM
0
OK, nevermind, I think I found enough functionality to get me by.
An array of arrays is sortable (an array of hashes is not).
And, array.assoc provides a lookup of a specific "pair"
y = [['bbb','beta'], ['ggg','gamma'], ['aaa','alpha']]
puts y.assoc('ggg') # will return ['ggg', 'gamma]
puts y.sort # actually works. Weeee.
-- gw
--
Posted via
http://www.ruby-...
.
ara.t.howard
10/25/2007 3:39:00 PM
0
On Oct 25, 2007, at 12:40 AM, Greg Willits wrote:
> In a language called Lasso I am used to a data structure of an
> array of
> pairs:
>
> $simpleArray = array( 'color', 'shape', 'size')
>
> $arrayofPairs = array( 'color' = 'red', 'shape' = 'trapezoid',
> 'size' =
> 'small')
>
> $simpleMap = map( 'color' = 'red', 'shape' = 'trapezoid', 'size' =
> 'small')
>
> The difference between arrayofPairs and simpleMap is that the map
> (hash)
> cannot gaurantee a specific order whereas the arrayofPairs does.
> It's an
> array, so order is preserved. It also has what effectively works just
> like hash keys. I can find, retrieve, and even sort based on the first
> element of the pair. Lasso has a primitive data type of a Pair.
>
> Does Ruby have a way to create this arrayofPairs? I don't see a data
> type like a "pair" in Ruby, so not sure what to insert into each array
> element to net this same data structure except I guess maybe an
> array of
> single key hashes?
>
> ideas? Thanks.
use arrayfields.
cfp:~ > cat a.rb
require 'rubygems'
require 'arrayfields' ### gem install arrayfields
a = Arrayfields.new 'k', 'v', 'K', 'V'
p a['k']
p a['K']
p a
__END__
docs @
http://codeforp...
lib/ruby/ar...
arrayfields-4.5.0/README
cfp:~ > ruby a.rb
"v"
"V"
["v", "V"]
kind regards.
a @
http://codeforp...
--
share your knowledge. it's a way to achieve immortality.
h.h. the 14th dalai lama
Rick DeNatale
10/25/2007 5:03:00 PM
0
On 10/25/07, Greg Willits <lists@gregwillits.ws> wrote:
> OK, nevermind, I think I found enough functionality to get me by.
>
> An array of arrays is sortable (an array of hashes is not).
>
> And, array.assoc provides a lookup of a specific "pair"
>
> y = [['bbb','beta'], ['ggg','gamma'], ['aaa','alpha']]
>
> puts y.assoc('ggg') # will return ['ggg', 'gamma]
>
> puts y.sort # actually works. Weeee.
You might also consider using a hash, for access and produce the array
when needed to sort. Consider:
h = {"color" => "red", "shape" => "trapezoid", "size" => "small" }
h.to_a # => [["size", "small"], ["shape", "trapezoid"], ["color", "red"]]
h.to_a.sort # => [["color", "red"], ["shape", "trapezoid"], ["size", "small"]]
--
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denh...
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
Array of Pairs data structure?
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password