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

World: r3wp

[!REBOL3-OLD1]

Mchean
21-Jan-2009
[9812]
thanks
Steeve
21-Jan-2009
[9813]
hum, i see your point now henrik, yes even binary data are stored 
as rebol values, so that there take much more space.
Henrik
21-Jan-2009
[9814]
yes, that's what I meant. :-)
Steeve
21-Jan-2009
[9815]
perhaps i will add on option in the scheme to store data as pure 
binaries
Henrik
21-Jan-2009
[9816]
it might be useful in cases where you want to store images and such.
Steeve
21-Jan-2009
[9817]
right
BrianH
21-Jan-2009
[9818x2]
Steeve, aside from the REBOL-syntax-storage aspect, your virtual 
block scheme sounnds like the RIF (REBOL Indexed Files) proposal 
that was at one point intended for inclusion in R3 (and may still 
be).
However, RIF was intended to store its data in Rebin format (binary 
encoding of REBOL values).
Henrik
21-Jan-2009
[9820x2]
BrianH, I'm thinking that Steeve has made his design good enough 
to allow doing that as an option. :-)
thinking = hoping
[unknown: 5]
21-Jan-2009
[9822x4]
So can specify how many blocks of data you want to read at a time? 
 Like say I want to read 10 blocks and stop and then read 10 more 
where that one left off?
Sorry I got distracted - I had to use some mighty puddy on a chair.
I have a function called get-block which I use to handle block reading 
currently.
It can be used on binary data as well as ascii data and will carve 
out the blocks of the buffer.
Henrik
21-Jan-2009
[9826]
It seems rebdev mobile is down right now, so I made a screenshot 
of Steeve's example post:

http://rebol.hmkdesign.dk/files/r3/gui/182.png
[unknown: 5]
21-Jan-2009
[9827x3]
>> a: "this is a test [now a block] garbage [another block with a 
block in it []][and another] garbage..

 == {this is a test [now a block] garbage [another block with a block 
 in it []][and another] garbage..}
>> get-block a
== [now a block]
>> 
 get-block a
== [another block with a block in it []]
>> get-block 
 a
== [and another]
My get-block function just advanced automatically through the string.
anyone know which sort algorithm that R3 uses for it's sort function?
Steeve
21-Jan-2009
[9830]
Paul, yes i do by using  the standard copy/part function.
>> copy/part v-block 10
== [ first-value second-one etc...]

copy is auto advancing in the block, so that if you do several copy/part 
at once , you will get several sub blocks of values.
[unknown: 5]
21-Jan-2009
[9831]
So 10 would equal ten blocks read?
Steeve
21-Jan-2009
[9832]
yes
[unknown: 5]
21-Jan-2009
[9833]
Can it handle newlines in the block contents?
Steeve
21-Jan-2009
[9834x2]
it works in reverse order either.
>> copy/part  tail vblock -10
get the last 10 values of the block
Yes Paul, it does
[unknown: 5]
21-Jan-2009
[9836x2]
Good, it is sounding nice Steeve.  Hope to see it in R3.
Yours sounds like what Chris wants to do.
Steeve
21-Jan-2009
[9838]
even it it's not in core R3, it will be downloadable.
[unknown: 5]
21-Jan-2009
[9839]
Nice Steeve.
Steeve
21-Jan-2009
[9840]
i will release the first version in some days or hours, i need to 
write more documentation
[unknown: 5]
21-Jan-2009
[9841]
Please post in ALTME as well.  I would like to check it out.
Pekr
21-Jan-2009
[9842]
rebdev private msging fixed ..
[unknown: 5]
21-Jan-2009
[9843]
Will R3 introduce function overloading?
BrianH
21-Jan-2009
[9844]
Nope, functions are still values.
[unknown: 5]
21-Jan-2009
[9845]
ok..
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.