12-27-2023, 08:41 AM
The particular issue might be due to (remove) acting at different times depending on the parameter 'at:' and being somewwhat special in its implementation. This is where detailed specs could help make sure everyone knows what is supposed to happen, and things don't randomly change in the future.
The general problem probably has to do with the non-procedural nature of the language, and I also grapple with it, trying many alternatives until I find the right one, because it is hard to keep in mind the methods that do work and those that do not, and how to work around them. Usually this forces a clearer more concise script in the end, but sometimes I can only find work-arounds. I would be happy to review scripts with you where you find issues...
The general problem probably has to do with the non-procedural nature of the language, and I also grapple with it, trying many alternatives until I find the right one, because it is hard to keep in mind the methods that do work and those that do not, and how to work around them. Usually this forces a clearer more concise script in the end, but sometimes I can only find work-arounds. I would be happy to review scripts with you where you find issues...