Associative array/Iteration: Difference between revisions

Content added Content deleted
(→‎{{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: Line 2,213:


=={{header|REXX}}==
=={{header|REXX}}==
<lang rexx>/*REXX program shows how to set/display values for an associative array.*/
<lang rexx>/*REXX program demonstrates how to set and display values for an associative array. */
/*╔════════════════════════════════════════════════════════════════════╗
/*┌────────────────────────────────────────────────────────────────────┐
The (below) two REXX statements aren't really necessary, but it
The (below) two REXX statements aren't really necessary, but it
shows how to define any and all entries in a associative array so
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
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
indicate such, or its value can be checked to determine if a
particular associative array element has been set (defined).
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 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) /*get the next state in the list.*/
The list of states (empty now). It's convenient to have them in
║ 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*/ /* [↑] display states defined. */
║ more code, they could be sorted quite easily.
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 /*keep a list of all state codes.*/
characters can be used, including blank(s) and non─displayable
stateN.code=name /*set the state's name. */
characters (including '00'x, 'ff'x, 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', "Missouri" , '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 capitols that were defined. */
q=word(stateL, j) /*get the next (USA) state in the list.*/
say 'the former capitol 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 uppercase code; get name &capitol*/
stateL=stateL code /*keep a list of all the US state codes*/
stateN.code=name /*set (define) the state's name. */
stateC.code=cap /* " " " " capitol. */
return /*return to invoker, SETSC is finished.*/</lang>
'''output'''
<pre>
<pre>
the former capital of (AL) Alabama was Tuscaloosa
the former capital of (AL) Alabama was Tuscaloosa