[#13775] Problems with racc rule definitions — Michael Neumann <neumann@...>

15 messages 2001/04/17
[#13795] Re: Problems with racc rule definitions — Minero Aoki <aamine@...> 2001/04/18

Hi,

[#13940] From Guido, with love... — Dave Thomas <Dave@...>

52 messages 2001/04/20

[#13953] regexp — James Ponder <james@...>

Hi, I'm new to ruby and am coming from a perl background - therefore I

19 messages 2001/04/21

[#14033] Distributed Ruby and heterogeneous networks — harryo@... (Harry Ohlsen)

I wrote my first small distributed application yesterday and it worked

15 messages 2001/04/22

[#14040] RCR: getClassFromString method — ptkwt@...1.aracnet.com (Phil Tomson)

It would be nice to have a function that returns a class type given a

20 messages 2001/04/22

[#14130] Re: Ruby mascot proposal — "Conrad Schneiker" <schneik@...>

Guy N. Hurst wrote:

21 messages 2001/04/24
[#14148] Re: Ruby mascot proposal — Stephen White <spwhite@...> 2001/04/24

On Tue, 24 Apr 2001, Conrad Schneiker wrote:

[#14188] Re: Ruby mascot proposal — matz@... (Yukihiro Matsumoto) 2001/04/25

Hi,

[#14193] Re: Ruby mascot proposal — "W. Kent Starr" <elderburn@...> 2001/04/25

On Tuesday 24 April 2001 23:02, Yukihiro Matsumoto wrote:

[#14138] Re: python on the smalltalk VM — Conrad Schneiker <schneik@...>

FYI: Thought this might be of interest to the JRuby and Ruby/GUI folks.

27 messages 2001/04/24
[#14153] Re: python on the smalltalk VM — Andrew Kuchling <akuchlin@...> 2001/04/24

Conrad Schneiker <schneik@austin.ibm.com> writes:

[#14154] array#flatten! question — Jim Freeze <jim@...> 2001/04/24

Hello.

[#14159] Can I insert into an array — Jim Freeze <jim@...> 2001/04/24

Ok, this may be a dumb question, but, is it possible to insert into an

[#14162] Re: Can I insert into an array — Dave Thomas <Dave@...> 2001/04/24

Jim Freeze <jim@freeze.org> writes:

[#14289] RCR: Array#insert — Shugo Maeda <shugo@...> 2001/04/27

At Wed, 25 Apr 2001 01:28:36 +0900,

[#14221] An or in an if. — Tim Pettman <tjp@...>

Hi there,

18 messages 2001/04/25

[#14267] Re: Ruby mascot proposal — "Conrad Schneiker" <schneik@...>

Danny van Bruggen,

16 messages 2001/04/26

[#14452] How to do it the Ruby-way 3 — Stefan Matthias Aust <sma@3plus4.de>

First a question: Why is

21 messages 2001/04/30

[ruby-talk:13863] Re: use strict + nested data structures in Ruby

From: Dave Thomas <Dave@...>
Date: 2001-04-19 13:00:10 UTC
List: ruby-talk #13863
tarael200@aol.com (Tarael200) writes:

>   I've recently come over from the Perl side

Welcome!

> of the programming world, and am curious, is there 'use strict' for
> Ruby so I have to pre-declare my variables?

Local variables must be defined, or you'll get a warning when they are
used. What's different in Ruby is what counts as a definition: Ruby
must have seen an assignment to that variable somewhere prior to its
first use as an rvalue. That assignment does not have to have been
executed, just seen:

A program tht just contains:

  puts a      #=> undefined local variable or method `a'

give the error. However

  if false
    a = 99
  end
  puts a      #=> nil

outputs 'nil'.

>   Also, how can I implement perl-style nested data structures in Ruby?

The difference between Perl and Ruby here is that Ruby does not
support autovivification, so if you want an array of hashes (for
example) you'd do something like:

   a = []

   # some time later

   a[n] ||= {}         # ensure there's a hash at a[n]
   a[n]['cat'] = 'feline'


HOWEVER...

You don't find yourself doing that much in Ruby (or at least I
don't). In Perl, you nest data structures because that's the easiest
way of structuring data. In Ruby, creating classes and structures is
so trivial that you use them instead. And when you do that, you then
discover that it's easy to add methods to those classes to implement
behavior associated with those data structures, and suddenly you
discover you're doing object oriented programming :)

It takes a while to break Perl habits in Ruby, because the languages
are deceptively similar in many ways.


Dave

In This Thread