Human perception is fluid. People look at the same thing in different ways at different times or in different situations. Fluid language characteristics include typeless variables that can hold different types of values at different times, and automatic or easy conversion of values from one type to another (for example, treating a number as a string or vice-versa).
In addition to typeless variables and easy and automatic conversion of values, SenseTalk also allows a single value to be treated as a list, and a single-item list to be used directly like a single value in most contexts.
set foo to 6*6 -- foo is the number 36
put "2" before foo -- now foo is the string "236"
add 3 to foo -- the number 239
insert (32,45) after foo -- treat foo as a list, now (239,32,45)
delete the first 2 items of foo -- foo is now the single-item list (45,)
put foo + 7 -- treats foo as a single value, displaying 52
While the ability to treat a number as a string might seem silly or useless at first, I recently came across an interesting example in a user's script. The script performed a calculation that resulted in a negative value, but the user wanted its positive value. As an experienced programmer familiar with mathematical operations, my approach to this problem would have been to negate the value, or to use the ABS() function to get its absolute value.
Instead of one of those approaches, this user took the direct (and, to them, intuitive) approach with this line of code:
delete "-" from answer
Thanks to SenseTalk's fluidity, this command to delete a particular character from a string worked perfectly on the numeric value in the answer variable, resulting in a string value internally, which nevertheless could then continue to be used in further numeric calculations.