Index: doc/user/06_feature/query/lang.html =================================================================== --- doc/user/06_feature/query/lang.html (revision 32032) +++ doc/user/06_feature/query/lang.html (revision 32033) @@ -140,7 +140,7 @@

If an EXPR references a variable (list), it is evaluated for all -valid members of the list (see P45, P46), in order of the list. For example +valid members of the list, in order of the list. For example if there is a variable called FOO, which is a list of objects (built using a search statement), expression

@@ -147,9 +147,8 @@
 FOO.p.thickness
 

-is evaluated as many times as many objects are on the list, and the -full assert is checked each case. If there is another similar list -called BAR, an expression: +is evaluated as many times as many objects are on the list. +If there is another similar list called BAR, an expression:

 (FOO.p.thickness < BAR.p.thickness)
 
@@ -164,8 +163,8 @@ the potential number of iterations is still 4*15, and not 4*4*15 (FOO is not iterated twice). In practice the engine leverages lazy evaluation so -if FOO.p.clearance is smaller than 10 mil, the right size is not evaluated. -See also: P45, P46. +if FOO.p.clearance is smaller than 10 mil, the right side is not evaluated, +which saves a few comparisons. See also: fields.

If a function needs to be called with a whole list passed instead of calling to function for each element of the list, the special list() @@ -178,7 +177,9 @@ will pass FOO as a list to function llen(), which is called only once. Without the list() wrapping, llen() would be called five times, once for each item in the list. -

+ +

Fields (properties and atributes)

+

A field reference is valid if the field exists. For example a line object has a thickness attribute, thus the .p.thickness is valid, but a polygon object does not have a thickness and .p.thickness on a polygon is invalid.