Associative array/Iteration: Difference between revisions

m
→‎{{header|REXX}}: changed/added comments and whitespace, changed indentations, corrected a misspelling and a typo.
(→‎{{header|Ruby}}: renamed myDict to my_dict)
m (→‎{{header|REXX}}: changed/added comments and whitespace, changed indentations, corrected a misspelling and a typo.)
Line 2,213:
 
=={{header|REXX}}==
<lang rexx>/*REXX program showsdemonstrates how to set/ and display values for an associative array. */
/*╔════════════════════════════════════════════════════════════════════╗
/*┌────────────────────────────────────────────────────────────────────┐
The (below) two REXX statements aren't really necessary, but it
shows how to define any and all entries in a associative array so
that if a "key" is used that isn't defined, it can be displayed to
indicate such, or its value can be checked to determine if a
particular associative array element has been set (defined).
╚════════════════════════════════════════════════════════════════════╝*/
└────────────────────────────────────────────────────────────────────┘*/
stateF.=' [not defined yet] ' /*sets any/all state former caps.*/
stateN.=' [not defined yet] ' /*sets any/all state names. */
/*┌────────────────────────────────────────────────────────────────────┐
│ In REXX, when a "key" is used, it's normally stored (internally) │
│ as uppercase characters (as in the examples below). Actually, any │
│ characters can be used, including blank(s) and non-displayable │
│ characters (including '00'x, 'ff'x, commas, periods, quotes, ···).│
└────────────────────────────────────────────────────────────────────┘*/
stateL='' /*list of states (empty now). It's nice to be in alpha-*/
/*betic order; they'll be listed in this order. With a */
/*little more code, they could be sorted quite easily. */
 
stateF.=' [not defined yet] ' /*sets any/all state former caps capitols.*/
call setSC 'al', "Alabama" ,'Tuscaloosa'
stateN.=' [not defined yet] ' /*sets any/all state names. */
call setSC 'ca', "California" ,'Benicia'
call setSC 'co', "Colorado" ,'Denver City'
call setSC 'ct', "Connecticut" ,'Hartford and New Haven (joint)'
call setSC 'de', "Delaware" ,'New-Castle'
call setSC 'ga', "Georgia" ,'Milledgeville'
call setSC 'il', "Illinois" ,'Vandalia'
call setSC 'in', "Indiana" ,'Corydon'
call setSC 'ia', "Iowa" ,'Iowa City'
call setSC 'la', "Louisiana" ,'New Orleans'
call setSC 'me', "Maine" ,'Portland'
call setSC 'mi', "Michigan" ,'Detroit'
call setSC 'ms', "Mississippi" ,'Natchez'
call setSC 'mo', "Missoura" ,'Saint Charles'
call setSC 'mt', "Montana" ,'Virginia City'
call setSC 'ne', "Nebraska" ,'Lancaster'
call setSC 'nh', "New Hampshire" ,'Exeter'
call setSC 'ny', "New York" ,'New York'
call setSC 'nc', "North Carolina" ,'Fayetteville'
call setSC 'oh', "Ohio" ,'Chillicothe'
call setSC 'ok', "Oklahoma" ,'Guthrie'
call setSC 'pa', "Pennsylvania" ,'Lancaster'
call setSC 'sc', "South Carolina" ,'Charlestown'
call setSC 'tn', "Tennessee" ,'Murfreesboro'
call setSC 'vt', "Vermont" ,'Windsor'
 
stateL= /*╔════════════════════════════════════════════════════════════════════╗
do j=1 for words(stateL) /*show all capitals that were set*/
q=word(stateL,j) The list of states /*get(empty thenow). next state It's convenient to have them in the list.*/
/*betic ║ alphabetic order; they'll be listed in this order. With a */little ║
say 'the former capital of ('q") " stateN.q " was " stateC.q
end /*j*/ ║ more code, they could be sorted quite easily. /* [↑] display states defined. */
exit /*stick a fork in it, we're done.*/
In REXX, when a "key" is used, it's normally stored (internally)
/*─────────────────────────────────────setSC subroutine─────────────────*/
as uppercase characters (as in the examples below). Actually, any
setSC: arg code; parse arg ,name,cap /*get upper code, get name & cap.*/
stateL=stateL code characters can be /*keepused, a listincluding ofblank(s) alland statenon─displayable codes.*/
stateN.code=name characters (including '00'x, /*set the state'sff'x, name.commas, periods, quotes, */···).║
╚════════════════════════════════════════════════════════════════════╝*/
stateC.code=cap /*set the state's capital. */
 
return /*return to invoker, SET is done.*/</lang>
call setSC 'al', "Alabama" , 'Tuscaloosa'
{{out}}
call setSC 'ca', "California" , 'Benicia'
call setSC 'co', "Colorado" , 'Denver City'
call setSC 'ct', "Connecticut" , 'Hartford and New Haven (joint)'
call setSC 'de', "Delaware" , 'New-Castle'
call setSC 'ga', "Georgia" , 'Milledgeville'
call setSC 'il', "Illinois" , 'Vandalia'
call setSC 'in', "Indiana" , 'Corydon'
call setSC 'ia', "Iowa" , 'Iowa City'
call setSC 'la', "Louisiana" , 'New Orleans'
call setSC 'me', "Maine" , 'Portland'
call setSC 'mi', "Michigan" , 'Detroit'
call setSC 'ms', "Mississippi" , 'Natchez'
call setSC 'mo', "MissouraMissouri" , 'Saint Charles'
call setSC 'mt', "Montana" , 'Virginia City'
call setSC 'ne', "Nebraska" , 'Lancaster'
call setSC 'nh', "New Hampshire" , 'Exeter'
call setSC 'ny', "New York" , 'New York'
call setSC 'nc', "North Carolina" , 'Fayetteville'
call setSC 'oh', "Ohio" , 'Chillicothe'
call setSC 'ok', "Oklahoma" , 'Guthrie'
call setSC 'pa', "Pennsylvania" , 'Lancaster'
call setSC 'sc', "South Carolina" , 'Charlestown'
call setSC 'tn', "Tennessee" , 'Murfreesboro'
call setSC 'vt', "Vermont" , 'Windsor'
 
do j=1 for words(stateL) /*show all capitalscapitols that were setdefined. */
q=word(stateL, j) /*get the next (USA) state in the list.*/
say 'the former capitalcapitol of ('q") " stateN.q " was " stateC.q
end /*j*/ /* [↑] show states that were defined.*/
exit /*stick a fork in it, we're all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
setSC: arg code; parse arg ,name,cap /*get upperuppercase code,; get name & cap.capitol*/
stateL=stateL code /*keep a list of all the US state codes*/
stateC stateN.code=capname /*set (define) the state's capitalname. */
stateC.code=cap /* " " " " capitol. */
return /*return to invoker, SETSETSC is donefinished.*/</lang>
'''output'''
<pre>
the former capital of (AL) Alabama was Tuscaloosa