cell!: alias struct! [ header [integer!] ;-- cell's header flags data1 [integer!] ;-- placeholders to make a 128-bit cell data2 [integer!] data3 [integer!] ]
@nedzadarek so, now you disagree with technical details and objective facts? Whatever.
Words and variables are different both in their implementations and at conceptual level. Words can serve as variables in a very, very special sense (to the degree that you can't just call them "variables" without wasting your breath on 1-2 hour explanation of difference between the two) , but they are not variables, neither technically (they differ in implementations) nor conceptually (we use "words" and "bindings" for a reason!).
any-word!s are bound to
system/words("global context") on
loadphase and are
unset(there's no value associated with them). Then, at run-time, words are rebound by functions to other contexts, change their values in the available conexts, or remain untouched.
>> foo: has [x][x: 42 'x] == func [/local x][x: 42 'x] >> foo == x >> get foo *** Script Error: context for x is not available *** Where: get *** Stack:
>> probe bind? foo make object! [ x: 42 ]