>Yet this works fine...
>
>i =4.5
>y = transform(i)
>? type("y")
>? vartype(y)
>
>Output is
>C
>C
>
This is because i don't think that Albert understands how TYPE() works; TYPE() takes the character expression it is passed, evaluates it, and returns the type of the evaluated expression. I'd expect TYPE('TRANSFORM(I)') == VARTYPE(TRANSFORM(I)), since TYPE('TRANSFORM(I)') evaluates the string TO "TRANSFORM(I))", gets the result of TRANSFORM(I), "4.5", , and checks it's type, while TYPE(TRANFORM(I)) evaluates the result of the function, "4.5", gets the result of 4.5, and checks it's type.
IOW, TYPE() and VARTYPE() operate exactly as designed and expected. If you check the result of TYPE("4.5"), it returns "N", while TYPE(4.5) results in an Error "Function argument value, type, or count is invalid", since TYPE()
takes a character string to evaluate, while VARTYPE() takes an actual value
>>i =4.5
>>? type(transform(i))
>>? vartype(transform(i))
>>
>>output:
>>N
>>C