Hi Ladislav,

> Hi Romano,
>
> I don't think, I must change your mind, but there is a difference you

Don't worry!

> probably don't see.

I hope. A new thing to learn.

> It is possible to define a Rebol function (a FUNCTION!
> datatype value to be exact), that takes one argument and evaluates it:
>
> do-f-0: func [f] [
>     f
> ]
>
> 1) DO-F-0 is able to evaluate any zero-argument function supplied as the F
> argument.
> 2) DO-F-0 is unable to evaluate any one-or-more-argument function supplied
> as the F argument
>
> Similarly it is possible to define a function that takes two arguments and
> evaluates the first one supplying it the second one as its argument:
>
> do-f-1: func [f arg1] [
>     f :arg1
> ]
>
> do-f-2: func [f arg1 arg2] [
>     f :arg1 :arg2
> ]
>
> etc.
>
> 3) I think, that we are in agreement, how many arguments the above defined
> functions take. It is evident, that for a Rebol function to evaluate its F
> argument, the function must take n + 1 arguments, where n is the number of
> arguments of F.

Upto here, we agree. Functions have a fixed number of args. Right?

> 4) Can you write a Rebol function (a FUNCTION! datatype value) able to
> evaluate any F (i.e. F with any number of arguments) without cheating, i.e.
> without "packing" the arguments into a block?

I don't understand. If the answer is no,  functions have always a fixed number
of args, like i think.
You think that this is false. So, you should be able to write this kind of
function. Right?

My answer should be: no. Only if i have a pointer to the block in which my
function has been called i could emulate the interpreter and count the
argument taken by f and its following args. I could try with do/next or with a
deep analysys of spec of function. It should be a problem to resolve
infix/prefix op.

But perhaps i have not understood your point.

>
> Cheers
>     Ladislav

P.S. I'm almost sure: the datatype simbol! is created every time a new bound
or not bound word is added to the system.

---
Ciao
Romano



-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to