r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!REBOL3-OLD1]

BrianH
21-Jan-2009
[9846]
Which is incompatible semantically with overloaded functions. You 
can only overload functions in languages where functions are declared, 
not where they are constructed and assigned.
[unknown: 5]
21-Jan-2009
[9847x3]
Correct, how about default parameter values when no arguments are 
passed and a function is invoked?  That would be a nice feature to 
have.
We can do this now in a more complicated manner.
I guess that could be related to the declaration issue also though.
BrianH
21-Jan-2009
[9850x2]
No, that's feasible in theory, but only for arguments that are optional 
in the REBOL style, using refinements (or any-type! for the last 
arguments) - REBOL's evaluation model depends on knowing the number 
of arguments. In practice the current method may be more efficient 
- we can see. That could be handled by a function construction function, 
i.e. FUNC, HAS or DOES.
Declaration is not the issue here, it is the lack of parentheses.
[unknown: 5]
21-Jan-2009
[9852]
We can currently do default values in R2.
BrianH
21-Jan-2009
[9853]
Yup, likely using the same function construction functions as R3 
if you like. Unlike FUNCT and FUNCTOR, that problem doesn't sound 
like it would require anything new to make things easier.
[unknown: 5]
21-Jan-2009
[9854x3]
I can already do something like this:


fnc: func [a [unset! string!]][either value? 'a [a][a: "I got value"]]
but it would nice to be able to do something like this:

fnc: func[a [string!] /default $10 ][print a]

fnc 
>> $10
where anything after /default is a default value for the respective 
parameter.
BrianH
21-Jan-2009
[9857]
Note that your parameter was the last in the list, the second condition 
mentioned above. That would only work if the calling expression was 
the last in its block because of REBOL's evaluation rules.
[unknown: 5]
21-Jan-2009
[9858]
Which is even more reason why the second example would be preferred.
BrianH
21-Jan-2009
[9859]
The evaluation rules of REBOL can't change without requiring parentheses 
or something around function arguments.
[unknown: 5]
21-Jan-2009
[9860]
I didn't know how deep changes were being made with respect to R3. 
 Maybe a wish for R4.
BrianH
21-Jan-2009
[9861]
Default values for parameters that are not the last parameter would 
need to be made optional using refinements. You *really* can't change 
this, not even in R4.
[unknown: 5]
21-Jan-2009
[9862]
Seems odd to me.  What language is REBOL written in?
BrianH
21-Jan-2009
[9863]
C and REBOL, with some C++ in linked libraries (AGG).
[unknown: 5]
21-Jan-2009
[9864]
Then it is doable from that standpoint - must be another reason that 
it wouldn't be done.
BrianH
21-Jan-2009
[9865]
It has nothing to do with the implementation language though - it's 
a syntax thing.
[unknown: 5]
21-Jan-2009
[9866x2]
In C++ for example the defaults are set as follows:

int fnc (int x = 1 int y = 2){...}
I can understand the syntax issue from the perspective of it requiring 
the parameters defaults be ordered.
BrianH
21-Jan-2009
[9868]
Languages that wrap function arguments in parentheses (like C and 
Pascal) or are line-oriented (like Basic and Python) or at least 
have statement separators (like ; ) have a way of telling where their 
argument lists end. REBOL can only do so if the arity of a function 
is determinable at the call site. This is the price we pay for getting 
rid of the parentheses.
[unknown: 5]
21-Jan-2009
[9869]
Yeah, I wish Carl would give more specifics on the internals sometime.
BrianH
21-Jan-2009
[9870]
That is not a matter of internals, it really is a consequence of 
REBOL's evaluation rules. You can't change it without changing the 
language in drastically incompatible and slower ways.
Steeve
21-Jan-2009
[9871]
Ok, i made a demo using the virtual block scheme (tested only with 
the last alpha)
Sorry for my frenglish
http://www.MegaShare.com/573256
Oldes
21-Jan-2009
[9872]
Why you use such a site instead of using for example rebol.org?
Henrik
21-Jan-2009
[9873]
it's small.
Steeve
21-Jan-2009
[9874x3]
the scheme size 4,5 Kb, i add documentation, so now it's huge 10 
Kb
Oldes, it's a first try, then i will post it in rebol.org
and i have no ftp currently T_T
Henrik
21-Jan-2009
[9877]
Steeve, why does CLEAR clear the whole block?
[unknown: 5]
21-Jan-2009
[9878x2]
Don't see nothing there but ads. Steeve, if you want something quick 
you can use mediafire.com
www.mediafire.com
Steeve
21-Jan-2009
[9880]
because there is now way to delete one or several records currently
Henrik
21-Jan-2009
[9881]
Steeve, ah, forgot that.
[unknown: 5]
21-Jan-2009
[9882]
Try that link above - it is good.
Henrik
21-Jan-2009
[9883]
Paul, try reloading the page a few times. It worked here.
[unknown: 5]
21-Jan-2009
[9884]
I had to put on compatibility mode but got it.
Henrik
21-Jan-2009
[9885]
(but I agree those sites generally suck)
Steeve
21-Jan-2009
[9886]
T_T
[unknown: 5]
21-Jan-2009
[9887x2]
I'm not sure I'm doing something right as I got an error.  Let me 
look thru the script.
Oh this requires R3 - duh.  I can't try this out yet.
Steeve
21-Jan-2009
[9889]
uhuh T_T
[unknown: 5]
21-Jan-2009
[9890]
I'll check it out in a few months.  ;-)
Henrik
21-Jan-2009
[9891]
Steeve, so the basic limitations now are natives that don't support 
ports?
Steeve
21-Jan-2009
[9892x4]
it seems
you can call the actor with his full path anyway, but' it's not rebolish
the main objective it to allow programers, to switch between normal 
blocks and virtual blocks when they want without the need to rewrite 
their code
brb (shower time)