[#57185] Cipher book for ruby — Shannon Fang <xrfang@...>

Hi all ruby gurus there,

16 messages 2002/12/01

[#57228] What do some of Ruby's symbols mean? — "Gavin Sinclair" <gsinclair@...>

This could do with some community input before going to the FAQ. The format

31 messages 2002/12/01
[#57234] Re: [FAQ] What do some of Ruby's symbols mean? — dblack@... 2002/12/01

Hi --

[#57237] Re: [FAQ] What do some of Ruby's symbols mean? — Shannon Fang <xrfang@...> 2002/12/01

Hi David

[#57246] [Revised] What do some of Ruby's symbols mean? — "Gavin Sinclair" <gsinclair@...>

Thanks for the instant feedback. And apologies for the offensive late-night

11 messages 2002/12/01

[#57337] Memory consumption problem with recursion — squidster@... (Squidster)

Fellow Rubyists/Rubyians/Rubyans,

10 messages 2002/12/02

[#57349] [Revised again] What are the non-alphanumerical symbols in Ruby code? — "Gavin Sinclair" <gsinclair@...>

Folks,

13 messages 2002/12/02

[#57380] Ruby Book for People Who Aren't (Yet) Programmers — "Chris" <nemo@...>

Hello,

11 messages 2002/12/02

[#57403] Newsgroup — Daniel Carrera <dcarrera@...>

Hello,

28 messages 2002/12/02
[#57409] Re: Newsgroup — "Chris Morris" <chrismo@...> 2002/12/02

In addition, this mailing list is a mirror of the newsgroup, so there's no

[#57411] Re: Newsgroup — Daniel Carrera <dcarrera@...> 2002/12/02

Ruby Book for People Who Aren't (Yet) Programmers

[#57412] Re: Newsgroup — Mauricio Fern疣dez <batsman.geo@...> 2002/12/02

On Tue, Dec 03, 2002 at 04:50:10AM +0900, Daniel Carrera wrote:

[#57438] Re: Newsgroup — Daniel Carrera <dcarrera@...> 2002/12/03

> You might already have received it by now. Get used to receiving the

[#57439] Re: Newsgroup — "Gavin Sinclair" <gsinclair@...> 2002/12/03

[#57440] Re: Ruby Book for People Who Aren't (Yet) Programmers — Daniel Carrera <dcarrera@...> 2002/12/03

> I heard a little while back that there might be a Ruby book in the works for

[#57480] Re: Ruby Book for People Who Aren't (Yet) Programmers — Martin DeMello <martindemello@...> 2002/12/03

Daniel Carrera <dcarrera@math.umd.edu> wrote:

[#57598] Class variables problem — Peter Hickman <peter@...>

I have used

16 messages 2002/12/04

[#57694] Re: Ruby Book for People Who Aren't (Yet) Programmers — "Bill Kelly" <billk@...>

Hi,

13 messages 2002/12/05

[#57735] Re: elseif? — "Shannon Fang" <xrfang@...>

How about a vote? I vote to add elseif as an alternative... Least

20 messages 2002/12/05

[#57816] ratlast 0.1 -- embedded FORTH in Ruby — Mark Probert <probertm@...>

18 messages 2002/12/05

[#57826] Re: elseif? — "Ted" <ted@...>

Yuk! Ruby was presented to me as a 'clean' language.

38 messages 2002/12/05

[#57833] on error resume next — Shannon Fang <xrfang@...>

Hi,

22 messages 2002/12/05

[#57856] Buffered output on Windows — "Chris Pine" <nemo@...>

Quick question:

26 messages 2002/12/05

[#58093] Thank God for backups — Daniel Carrera <dcarrera@...>

I was working on the tutorial just now and wanted to delete all the *~

48 messages 2002/12/07
[#58096] Re: Thank God for backups — "Gavin Sinclair" <gsinclair@...> 2002/12/07

From: "Daniel Carrera" <dcarrera@math.umd.edu>

[#58188] The Ruby Way — Daniel Carrera <dcarrera@...>

What do people think of "The Ruby Way"?

18 messages 2002/12/08

[#58394] Ruby BUG when using PStore and fork — Jeremy Henty <jeremy@...>

PStore does not appear to play well with fork. This script

20 messages 2002/12/09

[#58438] warnings -w — Daniel Carrera <dcarrera@...>

Hello,

20 messages 2002/12/10
[#58439] Re: warnings -w — matz@... (Yukihiro Matsumoto) 2002/12/10

Hi,

[#58441] Re: warnings -w — Daniel Carrera <dcarrera@...> 2002/12/10

> It sets $VERBOSE to true, and gives you extra warnings on parsing.

[#58444] Re: warnings -w — matz@... (Yukihiro Matsumoto) 2002/12/10

[#58446] Re: warnings -w — Daniel Carrera <dcarrera@...> 2002/12/10

> |Thanks. Can you give me an example of a parsing warning that it would

[#58447] Re: warnings -w — matz@... (Yukihiro Matsumoto) 2002/12/10

Hi,

[#58473] Problems transporting nil values using XMLRPC (net/http ?) — Martin Hart <martin@...>

12 messages 2002/12/10

[#58479] Pymacs in ruby? — "Mike Campbell" <michael_s_campbell@...>

This is probably way, way OT, but has anyone considered something along the

15 messages 2002/12/10

[#58597] calling a perl script — max <max@...>

hi

17 messages 2002/12/11

[#58657] functional programming "style" — "zesar" <i_wont@...>

i discovered ruby some weeks ago and i have to say now that i'm through with

13 messages 2002/12/11

[#58662] Re: The coolest thing since sliced bread — "Garriss, Michael" <Michael.Garriss@...>

Ugh! Free write forces users into a new editor? I'm lost without Vim.

21 messages 2002/12/11

[#58677] help -- persuade my boss to adopt ruby — Shannon Fang <xrfang@...>

Hi Ruby Lovers,

18 messages 2002/12/11

[#58689] Re: [ANN] jabber4r 0.3.0 (doesn't work with raa-install) — ptkwt@...1.aracnet.com (Phil Tomson)

15 messages 2002/12/11
[#58751] Re: [ANN] jabber4r 0.3.0 (doesn't work with raa-install) — ptkwt@...1.aracnet.com (Phil Tomson) 2002/12/12

In article <20021211171825.GA2345@localhost.localdomain>,

[#58724] Problem loading extensions in OSX 10.2.2 — Dave Thomas <Dave@...>

12 messages 2002/12/12

[#58730] Re: do I really not understand inheritance?? — "Chris Pine" <nemo@...>

AHA!!!

22 messages 2002/12/12
[#58769] Re: do I really not understand inheritance?? — dblack@... 2002/12/12

Hi --

[#58785] Re: do I really not understand inheritance?? — "Chris Pine" <nemo@...> 2002/12/12

Hmm.... I see what you're saying, I think. I was going to give you a

[#58819] Re: do I really not understand inheritance?? — dblack@... 2002/12/12

Hi --

[#58738] Re: help -- persuade my boss to adopt ruby — "Ted" <ted@...>

Dang! Ugly American idioms...

15 messages 2002/12/12
[#58742] Re: help -- persuade my boss to adopt ruby — "Russ Freeman" <russ@...> 2002/12/12

My advice:

[#58804] Re: help -- persuade my boss to adopt ruby — "Shannon Fang" <xrfang@...>

>it's the MATZ'S position that Ruby will never be REAL WORLD language.

102 messages 2002/12/12
[#59161] Re: help -- persuade my boss to adopt ruby — "Hal E. Fulton" <hal9000@...> 2002/12/16

----- Original Message -----

[#59181] Re: help -- persuade my boss to adopt ruby — "Bulat Ziganshin" <bulatz@...> 2002/12/16

Hello Hal,

[#59295] Re: help -- persuade my boss to adopt ruby — "Rich" <rich@...> 2002/12/17

The problem lies in the fact that these statements are equal:

[#59325] Re: help -- persuade my boss to adopt ruby — Austin Ziegler <austin@...> 2002/12/17

On Tue, 17 Dec 2002 16:49:47 +0900, Rich wrote:

[#59407] Re: help -- persuade my boss to adopt ruby — "Gavin Sinclair" <gsinclair@...> 2002/12/18

From: "Dan Sugalski" <dan@sidhe.org>

[#58870] replace setup.rb/install.rb with builtin module — ptkwt@...1.aracnet.com (Phil Tomson)

I proposed this idea last night on the tail-end of another thread and on

10 messages 2002/12/12

[#58913] Inheritance Question — Jim Freeze <jim@...>

Hi

38 messages 2002/12/12
[#58957] Re: Inheritance Question — "Gavin Sinclair" <gsinclair@...> 2002/12/13

From: "Jim Freeze" <jim@freeze.org>

[#58973] Re: Inheritance Question — Jim Freeze <jim@...> 2002/12/13

On Friday, 13 December 2002 at 15:45:27 +0900, Gavin Sinclair wrote:

[#58974] Re: Inheritance Question — ts <decoux@...> 2002/12/13

>>>>> "J" == Jim Freeze <jim@freeze.org> writes:

[#58993] Re: Inheritance Question — ahoward <ahoward@...> 2002/12/13

[#58998] Re: Inheritance Question — ts <decoux@...> 2002/12/13

>>>>> "a" == ahoward <ahoward@fsl.noaa.gov> writes:

[#59002] Re: Inheritance Question — ahoward <ahoward@...> 2002/12/13

On Sat, 14 Dec 2002, ts wrote:

[#59003] Re: Inheritance Question — ts <decoux@...> 2002/12/13

>>>>> "a" == ahoward <ahoward@fsl.noaa.gov> writes:

[#59108] un-extending objects — dblack@...

Hi --

17 messages 2002/12/15

[#59174] Toward ruby-lang.org renewal; trial website offered — matz@... (Yukihiro Matsumoto)

Hi,

33 messages 2002/12/16
[#59202] Re: Toward ruby-lang.org renewal; trial website offered — Trevor.Jenkins@... (Trevor Jenkins) 2002/12/16

On Mon, 16 Dec 2002 14:26:19 +0900, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#59203] Re: Toward ruby-lang.org renewal; trial website offered — Tim Bates <tim@...> 2002/12/16

On Mon, 16 Dec 2002 08:11 pm, Trevor Jenkins wrote:

[#59204] Re: Toward ruby-lang.org renewal; trial website offered — "NAKAMURA, Hiroshi" <nahi@...> 2002/12/16

Hi, all,

[#59343] OT: Functional Language Recommendation — Wai-Sun Chia <waisun.chia@...>

Sorry for the OT post, but I need some advise from some like-minded

23 messages 2002/12/17

[#59392] Re: [OT] RE: help -- persuade my boss to adopt ruby — "Austin Ziegler" <austin@...>

> Ok, I confess: I know nothing about data

10 messages 2002/12/17

[#59508] ANN: FXRuby-1.0.17 Now Available — Lyle Johnson <lyle@...>

-----BEGIN PGP SIGNED MESSAGE-----

15 messages 2002/12/18
[#59518] Re: ANN: FXRuby-1.0.17 Now Available — Jim Freeze <jim@...> 2002/12/18

On Thursday, 19 December 2002 at 2:51:08 +0900, Lyle Johnson wrote:

[#59537] Re: ANN: FXRuby-1.0.17 Now Available — Lyle Johnson <lyle@...> 2002/12/18

Jim Freeze wrote:

[#59568] Re: ANN: FXRuby-1.0.17 Now Available — Jim Freeze <jim@...> 2002/12/19

On Thursday, 19 December 2002 at 7:11:59 +0900, Lyle Johnson wrote:

[#59617] Re: ANN: FXRuby-1.0.17 Now Available — Lyle Johnson <lyle@...> 2002/12/19

Jim Freeze wrote:

[#59635] FXRuby and OS X 10.2 (Re: ANN: FXRuby-1.0.17 Now Available) — Brian Wisti <brian@...> 2002/12/19

Hi Lyle,

[#59564] Test::Unit 0.1.5 — <nathaniel@...>

What with all the holiday cheer going around (who can't be cheerful with

24 messages 2002/12/19
[#59621] Re: [ANN] Test::Unit 0.1.5 — Lyle Johnson <lyle@...> 2002/12/19

nathaniel@NOSPAMtalbott.ws wrote:

[#59625] Re: [ANN] Test::Unit 0.1.5 — <nathaniel@...> 2002/12/19

Lyle Johnson [mailto:lyle@users.sourceforge.net] wrote:

[#59808] ANN: FreeRIDE 0.5.0 Release Candidate 1 — "Curt Hibbs" <curt@...>

[drum roll...]

24 messages 2002/12/23

[#59834] ruby-dev summary 19069-19150 — TAKAHASHI Masayoshi <maki@...>

Hello all,

15 messages 2002/12/24

[#59854] ANN: ruby 1.6.8 — matz@... (Yukihiro Matsumoto)

Hello everyone,

16 messages 2002/12/24

[#59954] 1210 / 100 = 12? what? — Tom Sawyer <transami@...>

can someone explain this to me:

35 messages 2002/12/27
[#59955] Re: 1210 / 100 = 12? what? — Gavin Sinclair <gsinclair@...> 2002/12/27

Hello Tom,

[#59957] Re: 1210 / 100 = 12? what? — Tom Sawyer <transami@...> 2002/12/27

no i didn't realize that. i thought ruby would automatically change it to a

[#59962] Re: 1210 / 100 = 12? what? — Brian Wisti <brian@...> 2002/12/27

Hi Tom,

[#59968] Re: 1210 / 100 = 12? what? — Tom Sawyer <transami@...> 2002/12/27

On Thursday 26 December 2002 11:42 pm, Brian Wisti wrote:

[#59984] Re: 1210 / 100 = 12? what? — Philipp Meier <meier@...> 2002/12/27

On Fri, Dec 27, 2002 at 04:10:59PM +0900, Tom Sawyer wrote:

[#59985] Re: 1210 / 100 = 12? what? — Lloyd Zusman <ljz@...> 2002/12/27

Philipp Meier <meier@meisterbohne.de> writes:

[#60006] Ruby & Preprinted forms - will they work together? — colotechpro@... (John Reed)

I'm a Ruby newbie, but I've decided to write a commercial application

18 messages 2002/12/27

[#60016] Installing Fox, FXRuby and fxscintilla — Daniel Carrera <dcarrera@...>

I want to try out FreeRide, but just installing its dependencies has been

22 messages 2002/12/27
[#60018] Re: Installing Fox, FXRuby and fxscintilla — Lyle Johnson <lyle@...> 2002/12/28

Daniel Carrera wrote:

[#60050] RAA suggestions — Gavin Sinclair <gsinclair@...>

1. Reserve "what's new" for genuinely new packages. Introduce a

15 messages 2002/12/28

[#60146] rbbr 0.2rev1 bombs out! — Wai-Sun Chia <waisun.chia@...>

rbbr is looking for a rbbr/config.rb module which is non-existent..

20 messages 2002/12/30
[#60147] Re: rbbr 0.2rev1 bombs out! — Masao Mutoh <mutoh@...> 2002/12/30

Hi,

[#60149] Re: rbbr 0.2rev1 bombs out! — Wai-Sun Chia <waisun.chia@...> 2002/12/30

Huh?

[#60188] Range#size — Martin DeMello <martindemello@...>

I think I missed something - why is Range#size (and all its synonyms)

19 messages 2002/12/30
[#60210] Re: Range#size — matz@... (Yukihiro Matsumoto) 2002/12/31

Hi,

[#60223] Re: Range#size — Gennady Bystritsky <bystr@...> 2002/12/31

From: Gennady F. Bystritsky <gfb@tonesoft.com>

[#60206] Developing a website — "Shashank Date" <sdate@...>

I am planning to use Ruby to develop a website which will be hosted on

17 messages 2002/12/31

[#60217] ENV.clear — zhoujing@... (TOTO)

I tried

15 messages 2002/12/31

[#60221] win32_popen 0.1 — "Park Heesob" <phasis@...>

Hi, all.

15 messages 2002/12/31

From: christopher.j.meisenzahl@...
Date: 2002-12-02 14:24:42 UTC
List: ruby-talk #57375
Jim,

This is great stuff, thanks!

Could you explain point (3) in a little more detail for me? I understood 
everything up to: "...This helps explain why "+=" is not a method and why "++" 
can't be implemented as a method.".

And regarding the length of the post, never apologize for posts of this 
quality!  :-)


Thanks very much again,
Christopher

 
Christopher J. Meisenzahl CPS, CSTE
Senior Software Testing Consultant
Spherion
christopher.j.meisenzahl@citicorp.com




######################
Subject: Shoeboxes and Bindings

Sorry for the long post.  I've been observing several threads recently where 
the concept of assignment, mutablility and operators are discussed.  Folk 
wonder why "++" is not an operator and wonder why you can't assign to self.  
They confuse the difference between modifying a variable and modifying an 
object.

Now some of this is just being new to the language and you quickly overcome it. 
 I also think a good deal of the problem is that many programmers new to Ruby 
come from what I call "shoebox" languages, and changing the way you think about 
variables and assignments in Ruby will help you climb the learning curve a 
little faster.

So, here's some thoughts on variables and assignment.  If this helps you great. 
 If it doesn't, well, that's ok too.

SHOEBOXES AND BINDINGS
-----------------------

When I was first learning about programming (mumble mumble) years ago, 
variables were explained to me as shoeboxes.  A variable name denoted a 
location in memory (a shoebox) which can hold things.  You put values into the 
shoebox and they stay in there until you put something else in there.  Each 
shoebox is exactly the right size to hold the type of data you put into it.  
Integers fit in int-sized shoeboxes and floating point numbers fit in 
float-sized shoeboxes.  Pointers can be added to this model by envisioning 
labels (addresses) for each shoebox and storing a shoebox label in another 
shoebox.[1]  

Assignment is the act of copying a new value into one of your shoeboxes.

This model works really well for understanding FORTRAN (the language I was 
learning at the time) and Algol, and reasonable well for C and C++. 
HOWEVER, this is exactly the wrong way to think about Ruby variables.

Consider the code ...

    a = b = "Hello"

The shoebox model encourages us to think that the string is in the 'a' shoebox 
and another string is in the 'b' shoebox.  Therefore we are surprised when 
modifying a changes b.  To explain this within the shoebox model, we resort to 
talking about references and how the shoeboxes 'a' and 'b' don't actually hold 
the string object, but hold a reference to it.

All of this is perfectly correct, but I believe there is a better model to use 
for Ruby variables.

In Ruby, the variable 'a' does not represent a shoebox that can store things.  
Instead, it represents an association between a name and an object.  We call 
this association a "binding".  Executing the code ...

    a = "Hello"

binds the name 'a' to the string object "Hello".  References to 'a' after the 
assignment will lookup the name 'a' in a dictionary of bindings and will find 
the object currently associated with 'a'.  We no longer need think of variables 
as shoeboxes containing objects, but as names associated (bound) to objects.[2]

I see a number of advantages to this point of view.  

(1) The distinction between immediate values (like Fixnum) and reference values 
(most everything else) becomes invisible.  

(2) Multiple assignment statements (like 'a = b = "Hello"') is explained in 
terms of binding the names 'a' and 'b' to the same object.  No need to talk 
about pointers or references.

(3) Assignment becomes an operation that is outside an object.  Objects
don't care what names they are bound to.   Therefore binding is not an
operation on an object and won't ever be a method on an object.  This helps 
explain why "+=" is not a method and why "++" can't be implemented as a method.

I found that adopting this view has helped me understand Ruby better.  I hope 
it helps you as well.  Comments and feedback are encouraged.

Footnotes:

[1] I used this technique to explain pointers when I taught a class
    in C, except I used styrofoam cups with labels instead of shoeboxes.
    I would write on yellow postit notes and drop them into the cups
    (variables).  Each cup had a label, so to represent a pointer I 
    would write another cup's label on a postit and put it in a cup
    representing a pointer variable.  It was actually a rather effective
    in demonstration.

[2] Variables as name bindings is not unique to Ruby.  I first
    encountered the concept when learning Lisp (what I learned after
    studying FORTRAN).  I've also read threads in the Python newgroup
    where someone was offering a similar explaination of variable 
    binding for Python.  I'm sure there are many other languages where
    binding is a better model than shoeboxes.

-- 
-- Jim Weirich     jweirich@one.net    http://w3.one.net/~jweirich
---------------------------------------------------------------------
"Beware of bugs in the above code; I have only proved it correct, 
not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)
 



In This Thread

Prev Next