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

World: r3wp

[!REBOL3-OLD1]

Gregg
24-Jul-2007
[3650]
Question: How useful would you find the following, and what other 
aggregate funcs would you find most useful? 

fold: func [
	block [any-block!] "Block of values"
	accum "Accumulator value" 
	f [any-function!] "Function to apply"
][
    foreach val block [accum: f :accum :val]
]
sum: func [block [any-block!]] [fold block 0 :add]
product: func [block [any-block!]] [fold block 1 :multiply]
average: func [block [any-block!]][
    if empty? block [return none]
    divide  sum block  length? block
]
Gabriele
24-Jul-2007
[3651x4]
geomol, that kind of function is called FOLD, and we're hoping to 
have it as a mezz in R3.
our deadline is August 1st. of course, it's not impossible for us 
to miss it, but we don't want to miss it. (Henrik, Carl is quiet 
because he's away.)
ah, i see gregg has posted fold already :)
and, please remember that august 1st is our internal deadline, not 
a public statement. so, there has been no announcement about the 
beta being august 1st. i hope it will be around that date because 
that is our deadline. only Carl makes official announcements, unless 
noted otherwise. :)
Geomol
24-Jul-2007
[3655x4]
What is best? To have new functions like SUM, PRODUCT, etc. or having 
already present functions operate on blocks also?

One big force of REBOL is the datatypes, so isn't the second option 
the best?
Is there a theoretical difference between FOLD and MAP?
If you choose new functions like SUM, someone might argue, that JOIN 
with a block as second argument should be another function taking 
only one argument:
JOINALL ["a" "b" 2]
or REJOIN (that we have) if the block should be reduced.
I guess, it comes down to temperement and programming style. Expanding 
existing functions would mean:
add 4 [1 2 3 5]
adding new functions could give:
sum [1 2 3 4 5]

New functions means more words to learn and remember. Benefit is, 
that it's maybe easier to read the code. hm
Gregg
24-Jul-2007
[3659x2]
SUM is a standard term, and a common aggregate func. It could be 
a shortcut for "add number block". Generally, I like the idea of 
"overloading" funcs to make them smarter, e.g. a dialected version 
of EXTRACT is high on my list, but it's a fine line, and each choice 
has to be made carefully.
FOLD vs MAP - FOLD accumulates, while MAP applys the func and returns 
a series of results.
Will
24-Jul-2007
[3661]
I find 'collect very usefull lately,thanks for that 8-)  will it 
be part of R3?
Gregg
25-Jul-2007
[3662]
:-) We can hope.
Gabriele
25-Jul-2007
[3663x3]
i'm secretly using it in vid proto so to make the chances of it being 
in higher ;)
geomol: the problem is, that there are at least two things that add 
4 [1 2 3] could do. and, i think the most "natural" would be for 
it to result in [5 6 7].
also, FOLD is a generic construct, as opposed to having special handling 
in all the natives.
Pekr
25-Jul-2007
[3666]
Gabriele - how goes VID prototyping? What is its status? :-)
Geomol
25-Jul-2007
[3667]
Gabriele, good point with ADD!
Henrik
25-Jul-2007
[3668]
pekr, let me post a nice screenshot for you: http://rebol.hmkdesign.dk/r3/VID3/vid3.png
Graham
25-Jul-2007
[3669]
auto-resizing pleasssssee...
Henrik
25-Jul-2007
[3670x2]
is there
It's a little buggy ATM and needs more features, but the resize algorithm 
resizes the UI, no matter what you resize: the window or an element 
in the UI. So if you have a box in the middle of the window with 
stuff around it, and you make it bigger, the other elements are automatically 
displaced.
Graham
25-Jul-2007
[3672]
what's missing?
Henrik
25-Jul-2007
[3673x2]
Proper even spacing between UI elements. I think the window also 
sometimes does not resize properly, if content is resized. I may 
have missed some ways to do things in the layout dialect, so I may 
be wrong.
still in the prototype stage, so some things will probably change.
Graham
25-Jul-2007
[3675]
how compatible is the vid3 dialect with current vid?
Henrik
25-Jul-2007
[3676]
Gabriele should answer that...
Graham
25-Jul-2007
[3677]
He's gone for the night
Henrik
25-Jul-2007
[3678]
well, some layouts can be used, but things like ACROSS, BELOW, PAD 
are not in VID 3 (yet?).
Graham
25-Jul-2007
[3679]
Ok, so largely the same then
Henrik
25-Jul-2007
[3680]
the principles are the same, just allows for resizing, so some new 
words to handle that are in there.
Graham
25-Jul-2007
[3681]
an evolution of Vid rather than a revolutionary product
Henrik
25-Jul-2007
[3682]
hopefully also FEEL hell will be either gone or at least very reduced.
Graham
25-Jul-2007
[3683]
what do you FEEL about porting list-view ?
Pekr
25-Jul-2007
[3684]
auto resizing needs imo to support - resizing in x, or y axis, or 
both. Then we need anchoring - I wont e.g. button corner to be always 
aligned to area bottom-left point. Then we need the ability to turn 
reizing off for certain elements. Then we need limits for particular 
elements, to aviod unwanted resizing sizes ... etc.
Henrik
25-Jul-2007
[3685]
Graham, I don't think I FEEL quite up to it yet. :-) I don't even 
know yet how to code with GOBs properly, as they are a bit harder 
to manage than faces. There will hopefully be a solution to that.


There is a much better text list already in VID3 than in the old 
VID. It even has columns. :-)
Pekr
25-Jul-2007
[3686x2]
nice screenshot. But at first sight I miss on some fundamental elements 
- no accelerator keys yet? No visual focus representation? Is there 
focusing system inside already?
the current look of the ui is a bit ugly.
Henrik
25-Jul-2007
[3688x2]
partial focusing is there, but these things you mention are still 
in the design phase.
what's wrong with the UI look? :-) I think it's perfect. ;-)
Pekr
25-Jul-2007
[3690x2]
I just really hope that new VID will be fully featured GUI system, 
and that it will support most things needed to do larger business 
apps ....
It looks like mix of Amiga OS and some old kind of unix flavor .....
Henrik
25-Jul-2007
[3692]
Pekr, the prototype feels a lot more feature scalable, if it's any 
comfort. No real dead ends as in R2 VID.
Graham
25-Jul-2007
[3693x2]
My understanding is that Vid will be incomplete again
and it will be up to the community to complete it
Pekr
25-Jul-2007
[3695]
I hope so ... as for actual look, I don't care much yet, as it can 
be fixed by some gfx artist later. I care more about subsystem as 
keyboard support (focusing), visual representation of focusing, disabling/enabling 
ui elements, flexible resizing, on-something handlers rather than 
one feel func, and self-encapsulated styles - no external dependencies 
....
Henrik
25-Jul-2007
[3696x2]
Gentlemen, please remember, this is a prototype, so don't get too 
upset. I don't know how far it will be done when the beta comes out, 
but already now it feels far, far more capable than R2 VID.
pekr, there are a few on-something handlers in there already.
Pekr
25-Jul-2007
[3698x2]
Graham - but we can complete it. But only if basic subsystems are 
flexible. I hope those will be. I will not accept any "you can code 
your own VID" excuses. If there are going to be any, we are really 
doomed.
So, what I prefer for initial release is - introduce us to particular 
subystems, give us doc with description of how you aproach UI creation. 
Styles can be added later. But I want to have flexible base first, 
which will count on all things needed to support big GUIs.