[REBOL] Re: "get" function
From: henrikmk:gm:ail at: 9-Nov-2010 15:03
On Tue, Nov 9, 2010 at 4:52 AM, Peter W A Wood <pwawood-gmail.com> wrote:
> On 9 Nov 2010, at 10:54, Duke Normandin wrote:
>> =46rom "REBOL/Core Users Guide - Chapter 4 - Expressions":
>> print native? :if
>> Here the get returns the function for if.
>> Is this a typo? I don't see the "get" function being used. Is it
>> implied in native?
> No, it's not a typo. The "get" function (or an equivalent) was used. No,
> it's not implied in native?
> What you wrote was equivalent to:
>>> print native? get 'if =A0 =A0 =A0
> The : prefix denotes a get-word value, that is to say :if is a get-word.
> In REBOL a get-word evaluates to the "contents" of the word. (I quoted
> "contents" because depending on the type of value, the result of the
> evaluation may be the value referred to in the word - as is the case
> with functions).
> The section on Words in the REBOL/Core 2.3 docs is still valid -
It's also a nice shortcut for a security measure to avoid running
functions, if you are processing untrusted input, where it would be
possible to inject a function and you don't want to limit the possible
datatypes in the function argument.
my-func: func [data] [
any-function? :data [:data] ; pass it through
series? :data [parse :data my-rules] ; process it
== make function! [....
There are better examples, but that is the general idea.
Henrik Mikael Kristensen