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

World: r3wp

[Rebol School] Rebol School

BrianH
14-Apr-2010
[3101x2]
I tried with clear just now, and it was broken.
As demonstrated above.
Steeve
14-Apr-2010
[3103]
works well here, try a probe
Are you trying with R2 ?
It's not working with R3

remoldx: func [x /all /flat /only][
	do probe head clear change change change next 'mold/?
		pick [[] all] not all
		pick [[] flat] not flat
		pick [[] only] not only
		reduce x
]

probe remoldx/all [next 'a/a 2] 
probe remoldx/all/flat [next 'a/a 2]
probe remoldx [next 'a/a 2]
probe remoldx/only/all/flat [next 'a/a 2]

>>

mold/all
[#[path![a a]2] 2]
mold/all/flat
[#[path![a a]2] 2]
mold
[a 2]
mold/all/flat/only
#[path![a a]2] 2
BrianH
14-Apr-2010
[3104x2]
Just traced through, and the changes are persistent but the clear 
cleans up any extras. So it works from the outside, though it's not 
recursion-safe in R2 or R3, and not task-safe in R3.
The APPLY mezzanine uses a similar method (building a path), but 
creates a new path every time to be recursion-safe.
Steeve
14-Apr-2010
[3106x8]
Weird one :)

remold: func [x /all /flat /only][

 do head remove-each ref next copy 'mold/all/flat/only [not get in 
 bind? 'x ref] reduce x
]
Jeez , I don't need of the bind stuff...

remoldx: func [x /all /flat /only][

 do probe remove-each ref copy 'mold/all/flat/only [not get ref] reduce 
 x
]
I like this one, short.......
oups, i let the probe, even shorter.....
I didn't know, that even the refinements was bound to the context 
of the main function.
I meant the words in the path
I meant the words in the path
Well, It's needed when the paths are calculated (forget what I said)
BrianH
14-Apr-2010
[3114]
Nice. In R3 you'll need a temporary variable for the copied path 
because REMOVE-EACH returns the count removed instead of the value.
Gregg
14-Apr-2010
[3115]
Hah! I never thought of doing it that way. Very cool Steeve.
Ladislav
15-Apr-2010
[3116]
Is there a faster way to replace the first two charcters in the given 
string by the fifth and sixth character of the same string?
 
>> s: "123456789"
== "123456789"

>> change s copy/part at s 5 2
== "3456789"

>> s
== "563456789"
Henrik
15-Apr-2010
[3117x2]
I suppose using pick and poke is not faster.
or:

s/1: s/5
s/2: s/6
Maxim
15-Apr-2010
[3119]
this prevents the copy... 

change/part s at s 5 2
Ladislav
15-Apr-2010
[3120]
Max, but, unfortunately, it does not do what is needed
Maxim
15-Apr-2010
[3121]
ah yes... I thought it applied the range on both sides, but it only 
does so in the source string...
Graham
15-Apr-2010
[3122]
Perhaps 'move should have an option to copy ....
Gregg
15-Apr-2010
[3123]
Nothing comes to mind Ladislav. You're going to have to copy in any 
case, correct?
Ladislav
16-Apr-2010
[3124]
Well, I once thought, that there was a way how to circumvent the 
copy, but it looks to me now, that I was wrong
BrianH
16-Apr-2010
[3125]
Henrik's method circumvents the extra copy :)
Ladislav
16-Apr-2010
[3126]
yes, but it does not look to me like a viable way to replace a CHANGE 
X COPY/PART Y by a cycle of that kind, although I did not measure 
the speed difference, yet
NickA
18-Apr-2010
[3127]
forall s [if find [1 2] index? s [s/1: pick head s ((index? s) + 
4)]]

:)
Janko
18-Apr-2010
[3128]
hm .. anyone has any idea why rebpro on linux says "Set-Net not provided." 
I googled but couldn't find the point why is this.
I tried do-ing prot.r and mezz.r
Pekr
18-Apr-2010
[3129]
isn't rebpro just /base package? I mean - without the mezzanines?
Janko
18-Apr-2010
[3130]
yes
Pekr
18-Apr-2010
[3131]
you need to include mezz-* functions then
Janko
18-Apr-2010
[3132x2]
but set-net is defined .. but messages this. And if I 
do %/usr/share/cheyenne/rebol-sdk-276/source/mezz.r
do %/usr/share/cheyenne/rebol-sdk-276/source/prot.r
it's the same
Pekr
18-Apr-2010
[3134]
It errors out after the start here ....
Janko
18-Apr-2010
[3135x2]
do you think I need to do one by one (I tried some combinations I 
found on net but same behaviour)
how do you mean? what error does it show?
Pekr
18-Apr-2010
[3137x2]
Script: "User Preferences" (6-Jan-2009/21:58:59+1:00)
Set-Net not provided.
** Script Error: set-user-name has no value
** Near: set-user-name "Petr Krenzelok"
if (not none? system/view) [
    system/view/screen-face/options: none
]
>>
it apparently tries to do user.r, where I have set-net as a first 
function call. Other SDK kernels don't have such problems ...
Janko
18-Apr-2010
[3139x4]
aha.. you get set-net not provided also... maybe you call set-user-name 
also in user.r and that produces the error
I will try do-ing all the mezz* files first and see if then it will 
work
what happens to you if you do mezz.r and prot.r before calling set-net?
hm.. what does #include in mezz.r do? is this like preprocessing 
directive and inefective at runtime?
Pekr
18-Apr-2010
[3143x2]
yes, inefective in runtime, but effective when you Encap your app, 
REBOL preprocessor (prebol) uses it ...
http://www.rebol.com/docs/sdkug.html
Janko
18-Apr-2010
[3145x3]
I tried including many mezz-* also mezz-netset.r but same message
I mean do-ing
I also do-ed all prot-* that were in prot.r with no effect?


does this have something to do with licences?? Because word set-net 
is there but it just messages this. And set-net is in all free versions 
of rebol (and hopefully you can send email from them all along) so 
I am quite confused.
Maxim
18-Apr-2010
[3148]
are you doing set-net within user.r or in your script?
Janko
18-Apr-2010
[3149x2]
in my script (or in command line)
is there a difference .. I haven't ever yet user user.r .. I will 
try.