This is a case where efficiency and implementation considerations influenced language design. This information consists of the variable x and the location of the substring in x .
Every string subscripting expression produces a trapped variable.
Although the block of data that is created usually is used only transiently, it causes a certain amount of storage throughput. After all, such a situation seems more likely to be an error than an intentional computation. Here, however, there is an efficiency consideration. In order to be able to detect that the value of x has changed, it would be necessary to save the value of x as well as the variable x in the trapped variable. Furthermore, this would have to be done for every evaluation of a string subscripting expression.