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

World: r3wp

[Core] Discuss core issues

Janko
12-May-2009
[13699]
I made progress with my simple actors library few weeks back  but 
I still ahvent found time to make a blogpost about it.. it works 
nicely without something like yield and probably even has few advantages, 
but I am interested if somehow this can be made on top of rebol too
BrianH
12-May-2009
[13700]
R3 will have multitasking. For R2 you need to write your own interpreter, 
or switch the semantics (actors), or multiprocess.
Robert
13-May-2009
[13701]
I will never remember the trick: How can I get an output of 12.30 
instead of 12.3?
[unknown: 5]
13-May-2009
[13702x2]
BrianH, R3 discussions should go in the Rebol3 group.
(The hypocrisy).
Geomol
13-May-2009
[13704]
Robert, do you mean using money datatype?

>> $12.3
== $12.30

or maybe something like

>> append mold 12.3 "0"
== "12.30"
Robert
13-May-2009
[13705x9]
ah, I forget about money! in R2... thx.
Next one: I need to construct a HREF="..." with some dynamic code.
compose [<a href="/rest-cart/ordet/ (to-string session/id) "> "Bezahlen" 
</a>]
Of course this doesn't work. But converting the TAG to strings and 
than combining it all didn't work too.
And why this:
>> rejoin [<a href="test"> "Test" </a>]
== <a href="test"Test</a>>
This works but is ugly:
>> rejoin [<a href="test"> "Test" </a>]
== <a href="test"Test</a>>
sorry, I mean this:
>> to-tag rejoin [{a href="test">} "Test" "</a"]
 
== <a href="test">Test</a>
Henrik
13-May-2009
[13714]
Robert, what about BUILD-TAG?
Robert
13-May-2009
[13715x2]
;) He, he... to may functions to remember. Yep I think this works 
too and looks better.
Money: And way to get rid of the $ sign? I need Û at the end.
Sunanda
13-May-2009
[13717]
second $3.4
== 3.4
Robert
13-May-2009
[13718x2]
Without REMOVE etc.
Ah, cool. Didn't know this. Always something new after so many years...
Sunanda
13-May-2009
[13720]
Just tried it with R3-alpha ..... It does  not work.
I'll report it in Curecode.
Robert
13-May-2009
[13721]
Good, at least it helped to catch a bug.
Sunanda
13-May-2009
[13722]
:-)
  to-decimal $3.4

works in R3 but not R2.....So it may be a change of behavior, not 
a bug. Look out for reponse to curecode #807
Robert
13-May-2009
[13723]
But does it give the trailing 0 in R3?
Sunanda
13-May-2009
[13724]
Does not look like it:
    >> to-decimal $3.4
    == 3.4
Sunanda
14-May-2009
[13725]
Looks like to-decimal will be the R3 way:
http://curecode.org/rebol3/ticket.rsp?id=807
amacleod
14-May-2009
[13726]
How can I track the number of times a word/phrase occurs in a string!
I tried this: 
	if find str "a phrase" [print "found phrase"]
but it seems to only find the first occurance.
Steeve
14-May-2009
[13727]
is that a joke ?
Graham
14-May-2009
[13728x4]
use parse
There are examples on Rebol.com on how to use parse to count occurences 
ot tags etc.
of course it would be nice to have something like find/all which 
returns a block of all the occurences
Steeve... this is not the humour group!
Steeve
14-May-2009
[13732]
hmm...
 i: 0 while [str: find/tail str "a phrase"][i: i + 1]
Henrik
14-May-2009
[13733]
parse str [any [thru "a phrase" (print "found phrase")]]
Steeve
14-May-2009
[13734]
but it would be more relevant to post such request in "i'm new"
amacleod
14-May-2009
[13735]
I'm using to highlight parts of strings in a face during a text search. 
so I need to find caret offsets for each and append to the face/effect/draw 
block
Graham
14-May-2009
[13736]
findall: func [ st occurrence /local result ][
	result: copy []
	while [ st: find st occurrence ][ append result st st: next st]
	result	
]

>> findall "testing" "t"
== ["testing" "ting"]
Henrik
14-May-2009
[13737]
in that case, would you want the indexes?
Maxim
14-May-2009
[13738]
graham's solution does exactly that
Henrik
14-May-2009
[13739]
something like that has also been proposed for R3.
Graham
14-May-2009
[13740]
findall: func [ st occurrence /local result ][
	result: copy []

 while [ st: find st occurrence ][ append result index? st st: next 
 st]
	result	
]

>> findall "testing" "t"
== [1 4]
Henrik
14-May-2009
[13741]
would it be too clever to return the block at the positions instead 
of the index?
Graham
14-May-2009
[13742]
he just needs the offsets
Steeve
14-May-2009
[13743x4]
a reference or an offset is the same thing to my mind
whereas a reference fullfills more use cases
but can't be molded
and loaded back
amacleod
14-May-2009
[13747x2]
Thanks Graham, I had something almost like that func but not quite...
This is an example of the code I used but it only hi-lites first 
occurance: 

if find face/text butt [
						hs: caret-to-offset face find face/text butt
						he: caret-to-offset face find/tail face/text butt
						fsize: face/size/x
						draw_contents: copy face/effect/draw 
						get_xys ;(Find the shape of the drawn hi-lite)
						append face/effect/draw compose/deep [(shape)]
					]