Very nice and clean example code. Also, as you hinted, this does have the problem: add 1 to item random(16) of myVar
I infer from this that the problem is very likely not in how 'any' counts items. This also applies to subtract and multiply. I suspect that random(16) is being evaluated twice based on a first glance at the pattern. Because of that, my guess is that this bug will not cause a crash. The problem also occurs when I use my own random function. it looks as though this... add 1 to any item of x ... is being evaluated as... put 1 + any item of x into any item of x ... which is incorrect. Perhaps that is just the info needed for a quick fix. This also will show up for any function with side effects built-in or not, so this is a far ranging bug and it should be pushed up in priority. Dar > On Jun 5, 2016, at 8:48 AM, Mark Schonewille > <m.schonewi...@economy-x-talk.com> wrote: > > Hi Quentin, > > I see the same results, when I try your code. However, if I first store the > random value and add 1 to an item in the string in the next line in the > script, it works correctly. Apparently, the random function and the add > command are incompatible. > > on mouseUp > put "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" into myVar > repeat 100 > put random(16) into myRandom > add 1 to item myRandom of myVar > put myVar & cr after myTempList > end repeat > put sum(myVar) & cr & myTempList > end mouseUp > > Kind regards, > > Mark Schonewille > http://economy-x-talk.com > https://www.facebook.com/marksch > > Buy the most extensive book on the > LiveCode language: > http://livecodebeginner.economy-x-talk.com > > Op 05-Jun-16 om 16:12 schreef Quentin Long: >> Code which exhibits the bug: >> >> on mouseUp >> put "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" into Fred >> repeat 100 times >> add 1 to any item of Fred >> put Fred into line (1 + the number of lines in fld "testbed") of fld >> "testbed" >> end repeat >> put sum (Fred) into line (1 + the number of lines in fld "testbed") of fld >> "testbed" >> end mouseUp >> >> This handler *should* end up generating a 16-item string of integers which >> sum to exactly 100. What it *actually does* end up generating, is a 16-item >> string of integers whose sum may or may not fall somewhere within the range >> 80-120. Not sure what the hell is going on here, but I am not at all happy >> about it. Perhaps other people might like to try this code on their systems, >> and see if it works as intended for them? >> >> http://quality.livecode.com/show_bug.cgi?id=17795 >> > > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode