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

World: r3wp

[Core] Discuss core issues

Graham
27-Oct-2008
[11223]
Trim is also taken
Anton
27-Oct-2008
[11224]
BrianH, I actually didn't want tilde expansion for that case (an 
actual directory in the public cache), so R3's behaviour would have 
been good for me. Just wondering if anyone has any thoughts about 
the issue in R2.
Gregg
28-Oct-2008
[11225]
Where is KEEP used? Under R3 it may still be in the COLLECT spec, 
but I don't recall it in R2.
Anton
28-Oct-2008
[11226]
What about FIT ?
Graham
28-Oct-2008
[11227]
I was also thinking of fit
DideC
28-Oct-2008
[11228]
clear-at
Anton
28-Oct-2008
[11229]
discard
BrianH
28-Oct-2008
[11230x2]
COLLECT will be back-ported to R2. At the time of the 2.7.6 release 
the function was still under discussion - now it is finalized. We 
only backport final functions. I'm thinking that FOLD will probably 
make it too :)
How about TRIM-LENGTH ?
btiffin
28-Oct-2008
[11232]
Graham;  'only  'lop 'betail  'amputate  'pare  ''shorten  ''abscind 
     load up the dict protocol demo and >> thes truncate for more
Anton
28-Oct-2008
[11233]
oohoo, truncate's good.
BrianH
29-Oct-2008
[11234]
I like truncate.
btiffin
29-Oct-2008
[11235]
And just to place credit where it belongs ... Our good Chris was 
first with truncate   ... I was simply using it as a good launch 
point for a thesaurus scan.
Graham
29-Oct-2008
[11236x2]
how about 'lose
never seen that word used in a REBOL script!  :)
Anton
30-Oct-2008
[11238]
'lop is pretty good, because it (probably) implies a fixed length. 
eg. a forester might lop the tops off some trees.
Tomc
30-Oct-2008
[11239x2]
how about  trim/integer  ?  example

abbrev:  trim/3 month
trim/-n  could keep the last n chars
BrianH
30-Oct-2008
[11241]
Tom, that wouldn't work with REBOL's evaluation rules. Native or 
not, you can't write a function that way.
Tomc
30-Oct-2008
[11242]
picky  picky    
mth:  trim/lenght  month 3
Henrik
31-Oct-2008
[11243]
trim/to perhaps
Graham
31-Oct-2008
[11244]
Cut
Keep
Fit
Clear-at
Constrain

Discard
Trim-length
Truncate
Lose
Lop
Trim/to
Henrik
31-Oct-2008
[11245]
In this sense, CUT would mean split in two parts, I think. TRUNCATE 
is accurate, but TRIM/TO is a little shorter.
DideC
31-Oct-2008
[11246]
clear-at (its what it does)
truncate (its what it seems to do)
Graham
31-Oct-2008
[11247]
in that case, I would use trunc :)
Graham
5-Nov-2008
[11248x2]
One thing I do is to remove the outer characters eg. "[Something]" 
=> "Something"
Python has good tools for dealing with these functions.
Chris
5-Nov-2008
[11250]
That's where a range! datatype would come in handy:

copy/part "[Something]" 1..-1
Graham
5-Nov-2008
[11251x2]
Yep
this is Gregg's substr function


substring: func [
    [catch]
    source [string!]
    spec [block!]
    /local start stop rule
][
    rule: [set start integer! '.. set stop integer!]
    unless parse spec rule [
        throw make error! "Invalid range spec."
    ]
    copy/part skip source start stop
]
Chris
5-Nov-2008
[11253]
You could produce a 'truncate function that uses a pair! to similar 
effect...

truncate: func [string limit [pair! integer!]][
	if integer? limit [limit: 1x0 * limit]
	string: copy string
	case [
		negative? limit/x [remove/part string skip tail string limit/x]
		positive? limit/x [remove/part string limit/x]
		negative? limit/y [clear skip tail string limit/y]
		positive? limit/x [clear skip string limit/y]
	]
	string
]
Graham
5-Nov-2008
[11254x2]
the ".." is syntactic sugar.
the dialect doesn't cope with negative offsets it seems
Chris
5-Nov-2008
[11256x2]
; This works!:

truncate: func [string limit [pair! integer!]][
	if integer? limit [limit: 1x0 * limit]
	string: copy string
	case/all [
		negative? limit/x [limit/x: limit/x + length? string]
		negative? limit/y [limit/y: limit/y + length? string]
	]
	clear skip string limit/y
	remove/part string limit/x
]
>> truncate "[abc]" 1x-1 
== "abc"
Graham
5-Nov-2008
[11258x2]
cool
I think these sorts of series maniplulations should be native
Chris
5-Nov-2008
[11260x2]
Quite, except with range! instead of pair!
copy/part "[abc]" 1..-1
remove/part "[abcd]" 1..-1
BrianH
5-Nov-2008
[11262]
They are native, just without any unnecessary extra syntax. This 
isn't Perl, you know.
Graham
5-Nov-2008
[11263x2]
but perl rulz!
the power of a language lies partly in it's ability to express things 
concisely
PeterWood
5-Nov-2008
[11265]
>> str: "[abc]"    
 
== "[abc]

>> copy/part skip str 1 back tail str

== 
abc"
Graham
5-Nov-2008
[11266x4]
str appears twice
it's annoying
three times, if you do 

str: copy/part skip str 1 back tail str
instead of 'truncate, how about 'peel ?
PeterWood
5-Nov-2008
[11270]
If you are removing characters from both ends of a string 'strip 
would appear to be a more precise description.
Graham
5-Nov-2008
[11271]
Hmm.  You can strip the inner lining of something, but normally you 
only peel the outer layers :)
PeterWood
5-Nov-2008
[11272]
If that's you definition of stripping it's no wonder you live in 
NZ.