I can’t recall reading anything about this in the change log but could it be that lists within lists now preferably work with call-by-reference rather than call-by-value? In my old code, I could write something like this:
[code]Lab is a room.
A person has a list of lists of numbers called num.
To initialize (p - a person):
let new-coords be a list of lists of numbers;
let new-coord be a list of numbers;
add 1 to new-coord;
add 2 to new-coord;
add 3 to new-coord;
add new-coord to new-coords;
truncate new-coord to 0 entries;
now num of p is new-coords;
pop one new-coords;
now new-coords is {};
rule succeeds.
To pop one (l - a list of lists of numbers):
remove Entry 1 from l;
rule succeeds.
When play begins:
initialize player;
say num of player;[/code]
And get the result {{1, 2, 3}} while now I get the following error message:
Oddly enough, if you add another list to the list like this:
add 4 to new-coord;
add 5 to new-coord;
add 6 to new-coord;
add new-coord to new-coords;
truncate new-coord to 0 entries;
It won’t show the error but I end up with two empty lists within the list. My own code doesn’t throw the error either, where I have only one list within the list, but that one too will end up empty, which wasn’t the case before. The only solution I could find was to declare another list of lists variable in the following phrase and fill it with entries from the phrase parameter. Is this now supposed to be the norm? Are there any easier solutions to copy the content of a list of lists, rather than its references within, to another phrase rather than creating a new variable?