>
>On Thu, May 21, 2009 at 9:39 AM, Bill Steele <[log in to unmask]> wrote:
>>
>> set recordList to {}
>> set oneRecord to {foo:1, bar:"hello"}
>> set end of recordList to oneRecord
>> set twoRecord to {foo:2, bar:"Goodbye"}
>> set end of recordList to twoRecord
>> repeat with aRecord in recordList
>> if foo of aRecord is 1
>> set stuffIneeded to aRecord
>> end if
>> end repeat
>> --> returns the entire list.
>
>Not OMM. It does, however, return a reference to the first item of
>the list ("item 1") rather than the actual record.
>
>
>> set stuffIneeded to CONTENTS of aRecord
>
>yup.
>
>> Fairly easy to figure out (I managed), but not the way ordinary lists
>> behave.
>
>No, it's exactly the way ordinary lists of *references* behave,
>whether the referenced items are records or application objects - or
>other lists. This exhibits the same behavior.
>
>repeat with aList in { { 1, 2, 3 }, { 4, 5, 6 } }
> if item 1 of aList is 1 then
> set stuffIneeded to aList
> end if
>end repeat
>stuffIneeded
This is getting interesting. I've done a lot of stuff with hunting
through ordinary lists and would have disagreed with you, but I
experimented a bit:
set aList to {1, 2, 3}
repeat with oneNumber in aList
display dialog oneNumber --> works, 1, 2., 3
if oneNumber is 2 then
display dialog oneNumber --> zilch
end if
end repeat
but
set aList to {1, 2, 3}
repeat with i from 1 to 3
set oneNumber to item i of aList
if oneNumber is 2 then
display dialog oneNumber --> 2
end if
end repeat
the "in list" syntax doesn't do comparisons, but "item of" does.
Does that qualify as problematical?
--
Bill Steele
[log in to unmask]
|