Anonymous user
Associative array/Merging: Difference between revisions
→{{header|J}}
SqrtNegInf (talk | contribs) m (→{{header|Raku}}: Fix comment: Perl 6 --> Raku) |
|||
Line 305:
{{Out}}
<pre>Item {name = Just "Rocket Skates", price = Just 15.25, color = Just "red", year = Just 1974}</pre>
=={{header|J}}==
<lang J>
merge=: ,. NB. use: update merge original
compress=: #"1~ ~:@:keys
keys=: {.
values=: {:
get=: [: > ((i.~ keys)~ <)~ { values@:] NB. key get (associative array)
pair=: [: |: <;._2;._2
</lang>
Exercise the definitions. Interactive J prompts with 3 space indentation.
<pre>
] D=: pair 0 :0
name;Rocket Skates;
price;12.75;
color;yellow;
)
┌─────────────┬─────┬──────┐
│name │price│color │
├─────────────┼─────┼──────┤
│Rocket Skates│12.75│yellow│
└─────────────┴─────┴──────┘
E=: pair 0 :0
price;15.25;
color;red;
year;1974;
)
'color'get D
yellow
'color'get E
red
] F=: E merge D
┌─────┬─────┬────┬─────────────┬─────┬──────┐
│price│color│year│name │price│color │
├─────┼─────┼────┼─────────────┼─────┼──────┤
│15.25│red │1974│Rocket Skates│12.75│yellow│
└─────┴─────┴────┴─────────────┴─────┴──────┘
'color' get F
red
]G=: compress F
┌─────┬─────┬────┬─────────────┐
│price│color│year│name │
├─────┼─────┼────┼─────────────┤
│15.25│red │1974│Rocket Skates│
└─────┴─────┴────┴─────────────┘
'no such key'get F
|index error: get
| 'no such key' get F
'color'get F
red
</pre>
=={{header|Java}}==
|