CLEAR x=1 ? max(incvalue(@m.x),m.x) x=1 ? max(m.x,incvalue(@m.x)) PROCEDURE incvalue(v) v = m.v +1 RETURN m.v-1 endprocTherefore the ambiguity between passage for value or reference is not important in one called to one native function.
? LEN(m.string) && use by reference ? LEN((m.string)) && compute a expressionBut try this:
memString = SPACE(10000000) t1=SECONDS() FOR j=1 TO 100 strLenght = LEN(m.memString+SPACE(2384)) NEXT ? TRANSFORM(100/(SECONDS()-m.t1),'@R string lengh = 1000000 999,999,999,999 vfops/s') t1=SECONDS() FOR j=1 TO 100 strLenght = LEN(m.memString+SPACE(2385)) NEXT ? TRANSFORM(100/(SECONDS()-m.t1),'@R string lengh = 1000000 999,999,999,999 vfops/s')On my machine the second require double time !!!