This seems to be a pretty good example of a “built-in” function that I
can’t really see a practical use for… why does it need to be standard?
Why is it named so cryptically? When would you ever want to use it?
On Jan 4, 2008 10:44 PM, Jordan C. [email protected] wrote:
This seems to be a pretty good example of a “built-in” function that I
can’t really see a practical use for… why does it need to be standard?
Why is it named so cryptically? When would you ever want to use it?Posted via http://www.ruby-forum.com/.
I suppose you mean to_s.
Well this is a case of second sight ;). Look at this code
x.to_s # quite impressive, right?
and now look at this code
String === x ? x : x.to_s
what do you prefer?
HTH
Robert
–
http://ruby-smalltalk.blogspot.com/
Whereof one cannot speak, thereof one must be silent.
Ludwig Wittgenstein
On Friday 04 January 2008 22:44:48 Jordan C. wrote:
This seems to be a pretty good example of a “built-in” function that I
can’t really see a practical use for… why does it need to be standard?
Why is it named so cryptically? When would you ever want to use it?
It’s named after the unix program ‘tr’ with parameter ‘-s’ as in
squeeze.
Jan
Jan D. wrote:
It’s named after the unix program ‘tr’ with parameter ‘-s’ as in
squeeze.Jan
That makes more sense, thank you. I’m still not sure if it’s justified,
in my head; but I guess that may be because of my C# background, where
it’s encouraged to err on the side of too verbose as opposed to too
cryptic.
Unfortunately I still don’t see a practical use for the thing though.
Thanks!
Robert D. wrote:
I suppose you mean to_s.
No, he doesn’t.
str.tr_s(from_str, to_str) => new_str
Processes a copy of str as described under +String#tr+, then
removes duplicate characters in regions that were affected by the
translation.
“hello”.tr_s(‘l’, ‘r’) #=> “hero”
“hello”.tr_s(‘el’, '’) #=> "ho"
“hello”.tr_s(‘el’, ‘hx’) #=> “hhxo”
On Jan 4, 2008 11:12 PM, Sebastian H. [email protected]
wrote:
Robert D. wrote:
I suppose you mean to_s.
No, he doesn’t.
Stupid me, I thought that was simply #tr, my bad.
R.
On Jan 4, 2008, at 5:51 PM, J. Cooper wrote:
Unfortunately I still don’t see a practical use for the thing though.
Remove blank lines from standard input
ruby -e ‘puts ARGF.read.tr_s("\n", “\n”)’
convert the standard input into a list of words, one per line:
ruby -e ‘puts ARGF.read.tr_s("^A-Za-z", “\n”)’
Gary W.