>> apply: func [function data][do compose reduce [function quote (data)]] == func [function data][do compose reduce [function quote (data)]] >> apply 'reverse/part [[a b c d] 2] == [b a c d]
>> skip tail words-of system/words -5 == [right-menu left-command right-command caps-lock num-lock] >> 'abracadabra == abracadabra >> skip tail words-of system/words -5 == [left-command right-command caps-lock num-lock abracadabra] >> [what? no this can't be serious!] == [what? no this can't be serious!] >> skip tail words-of system/words -5 == [what? this can't be serious!]
noisn't among the last 5 "mentioned" words, because it was already pre-defined.
context is a wrapper around
>> source context context: func ["Makes a new object from an evaluated spec" spec [block!] ][ make object! spec ]
object is a... well, see yourself :wink:
object: :context, so they are the same?
make object!creates and object in the same way as
object? So context would be a wrapper around
Namespaces are not objects!
Even if they look like objects, namespaces only exist at compilation time, so they cannot be manipulated at run-time.
Namespaces are commonly structured as hierarchies
Except that there's no hierarchy between contexts whatsoever.