Probably I'm not the first who pointed out this one. I quote from the help
EVALUATE(cExpression)
Parameters
cExpression
Specifies the expression to evaluate. cExpression can be a literal character string, or a valid Visual FoxPro expression, variable, array element, or field of any data type, enclosed in quotation marks. cExpression cannot exceed 255 characters.
It was a pleasant surprise to discover that cExpression can be 8192 character (if it's a variable):
EVALUATE(cExpression)
Parameters
cExpression
Specifies the expression to evaluate. cExpression can be a literal character string, or a valid Visual FoxPro expression, variable, array element, or field of any data type, enclosed in quotation marks. cExpression cannot exceed 255 characters.
It was a pleasant surprise to discover that cExpression can be 8192 character (if it's a variable):
LOCAL x[1162] as Integer,lc,s,lni && a dimension of 1163 exceed 8192 and produce error
lc=''
s=0
FOR lni=1 TO ALEN(x)
x[lni]=INT(RAND()*30000)
lc=lc+"+x["+TRANSFORM(lni)+"]"
s=s+x[lni]
NEXT
lc="5"+lc
s=5+s
STRTOFILE('EVALUATE(lc)='+TRANSFORM(EVALUATE(lc))+CHR(13)+'s='+TRANSFORM(s)+CHR(13)+'LEN(lc)='+TRANSFORM(LEN(lc))+CHR(13)+'lc='+lc,'zzz.txt')
MODIFY FILE zzz.txt