[#6363] Re: rescue clause affecting IO loop behavior — ts <decoux@...>

>>>>> "D" == David Alan Black <dblack@candle.superlink.net> writes:

17 messages 2000/11/14
[#6367] Re: rescue clause affecting IO loop behavior — David Alan Black <dblack@...> 2000/11/14

Hello again --

[#6582] best way to interleaf arrays? — David Alan Black <dblack@...>

Hello --

15 messages 2000/11/26

[#6646] RE: Array Intersect (&) question — Aleksi Niemel<aleksi.niemela@...>

Ross asked something about widely known and largely ignored language (on

23 messages 2000/11/29
[#6652] RE: Array Intersect (&) question — rpmohn@... (Ross Mohn) 2000/11/29

aleksi.niemela@cinnober.com (Aleksi Niemel) wrote in

[#6723] Re: Array Intersect (&) question — Mathieu Bouchard <matju@...> 2000/12/01

> >Use a hash. Here's code to do both and more. It assumes that

[#6656] printing/accessing arrays and hashes — raja@... (Raja S.)

I'm coming to Ruby with a Python & Common Lisp background.

24 messages 2000/11/30

[ruby-talk:6245] Re: quiz of the week

From: "Brian F. Feldman" <green@...>
Date: 2000-11-10 06:14:43 UTC
List: ruby-talk #6245
matz@zetabits.com (Yukihiro Matsumoto) wrote:
> Hi,
> 
> Can you tell the results from the following?
> And what is the reasons for the results?


Ooh, fun!!

>   line = "abab"
>   print line.sub!(/a/, 'A') + line.sub!(/b/, 'B'), "\n"

Well, let's see:

line.sub!(/a/, 'A') is called and returns a reference to line (now "Abab")
line.sub!(/b/, 'B') is called and returns a reference to line (now "ABab")

The reference to line is added to itself, returning a new string and 
equivalent to having done the sequence:

line.sub!(/a/, 'A').sub!(/b/, 'B') + line	# or * 2
"ABabABab"
 
>   line = "abab"
>   print line.sub!(/a/, 'A') + " " + line.sub!(/b/, 'B'), "\n"

line.sub!(/a/, 'A') is called, returning a reference to line (now "Abab")
String#+(" ") is called on line, following left-to-right + operator
  evaluation, returning the new string "Abab ", not equal to line
line.sub!(/b/, 'B') is called, returning a reference to line (now "ABab")
String#+(line) is called on the new string "Abab ", and "Abab " + "ABab" is
  "Abab ABab"


> Be careful of the bang. ;-)

Powerful, but deadly =)

> 							matz.


--
 Brian Fundakowski Feldman           \  FreeBSD: The Power to Serve!  /
 green@FreeBSD.org                    `------------------------------'



In This Thread