arrayiterator Type
The xreflect module provides a new type xreflect~arrayiterator which will allow you to programatically iterate through the entries of a named array. Each arrayiterator variable represents an iteration through the array, from start to end.
You initially associate the arrayiterator with an array by calling the iteratorinit procedure. The iterator has a current position in the array; this will initially be before the first entry. Then every time you call nextvalue, the iterator will advance to the next entry in the array - initially the first, then the second, etc. nextvalue returns true until the iterator reaches the end of the array, when it returns false.
While iterating through the array, you can obtain information about the current entry using the getindices and getvalue functions.
Example
The following example demonstrates iterating through the array and outputting each element, including index values
! Populate our example data-set public declarations myarray:dynamic array(set of integer,set of string) of real end-declarations myarray(100,'fred') := 100.1 myarray(100,'jim') := 101.5 myarray(101,'fred') := 215.7 ! Iterate through the array entries using the arrayiterator declarations it:arrayiterator end-declarations iteratorinit(it, 'myarray') while (nextvalue(it)) do write('myarray(') forall (v in it.indices) do write(v,',') end-do writeln(') = ',it.value) end-do
will output:
myarray(100,fred,) = 100.1 myarray(100,jim,) = 101.5 myarray(101,fred,) = 215.7
Subroutines
© 2001-2020 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.