World: r3wp
[Core] Discuss core issues
older newer | first last |
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. |
Graham 5-Nov-2008 [11273x3] | However, my preference is to add some dialect to trim ... |
rather than to keep adding words | |
Strip mining? | |
PeterWood 5-Nov-2008 [11276] | Stripping paint? stripping wallpaper? |
Graham 5-Nov-2008 [11277] | strip a joint ... = remove the contents |
older newer | first last |