[#6954] Why isn't Perl highly orthogonal? — Terrence Brannon <brannon@...>

27 messages 2000/12/09

[#7022] Re: Ruby in the US — Kevin Smith <kevinbsmith@...>

> Is it possible for the US to develop corporate

36 messages 2000/12/11
[#7633] Re: Ruby in the US — Dave Thomas <Dave@...> 2000/12/19

tonys@myspleenklug.on.ca (tony summerfelt) writes:

[#7636] Re: Ruby in the US — "Joseph McDonald" <joe@...> 2000/12/19

[#7704] Re: Ruby in the US — Jilani Khaldi <jilanik@...> 2000/12/19

> > first candidates would be mysql and postgressql because source is

[#7705] Code sample for improvement — Stephen White <steve@...> 2000/12/19

During an idle chat with someone on IRC, they presented some fairly

[#7750] Re: Code sample for improvement — "Guy N. Hurst" <gnhurst@...> 2000/12/20

Stephen White wrote:

[#7751] Re: Code sample for improvement — David Alan Black <dblack@...> 2000/12/20

Hello --

[#7755] Re: Code sample for improvement — "Guy N. Hurst" <gnhurst@...> 2000/12/20

David Alan Black wrote:

[#7758] Re: Code sample for improvement — Stephen White <steve@...> 2000/12/20

On Wed, 20 Dec 2000, Guy N. Hurst wrote:

[#7759] Next amusing problem: talking integers (was Re: Code sample for improvement) — David Alan Black <dblack@...> 2000/12/20

On Wed, 20 Dec 2000, Stephen White wrote:

[#7212] New User Survey: we need your opinions — Dave Thomas <Dave@...>

16 messages 2000/12/14

[#7330] A Java Developer's Wish List for Ruby — "Richard A.Schulman" <RichardASchulman@...>

I see Ruby as having a very bright future as a language to

22 messages 2000/12/15

[#7354] Ruby performance question — Eric Crampton <EricCrampton@...>

I'm parsing simple text lines which look like this:

21 messages 2000/12/15
[#7361] Re: Ruby performance question — Dave Thomas <Dave@...> 2000/12/15

Eric Crampton <EricCrampton@worldnet.att.net> writes:

[#7367] Re: Ruby performance question — David Alan Black <dblack@...> 2000/12/16

On Sat, 16 Dec 2000, Dave Thomas wrote:

[#7371] Re: Ruby performance question — "Joseph McDonald" <joe@...> 2000/12/16

[#7366] GUIs for Rubies — "Conrad Schneiker" <schneik@...>

Thought I'd switch the subject line to the subject at hand.

22 messages 2000/12/16

[#7416] Re: Ruby IDE (again) — Kevin Smith <kevins14@...>

>> >> I would contribute to this project, if it

17 messages 2000/12/16
[#7422] Re: Ruby IDE (again) — Holden Glova <dsafari@...> 2000/12/16

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

[#7582] New to Ruby — takaoueda@...

I have just started learning Ruby with the book of Thomas and Hunt. The

24 messages 2000/12/18

[#7604] Any corrections for Programming Ruby — Dave Thomas <Dave@...>

12 messages 2000/12/18

[#7737] strange border-case Numeric errors — "Brian F. Feldman" <green@...>

I haven't had a good enough chance to familiarize myself with the code in

19 messages 2000/12/20

[#7801] Is Ruby part of any standard GNU Linux distributions? — "Pete McBreen, McBreen.Consulting" <mcbreenp@...>

Anybody know what it would take to get Ruby into the standard GNU Linux

15 messages 2000/12/20

[#7938] Re: defined? problem? — Kevin Smith <sent@...>

matz@zetabits.com (Yukihiro Matsumoto) wrote:

26 messages 2000/12/22
[#7943] Re: defined? problem? — Dave Thomas <Dave@...> 2000/12/22

Kevin Smith <sent@qualitycode.com> writes:

[#7950] Re: defined? problem? — Stephen White <steve@...> 2000/12/22

On Fri, 22 Dec 2000, Dave Thomas wrote:

[#7951] Re: defined? problem? — David Alan Black <dblack@...> 2000/12/22

On Fri, 22 Dec 2000, Stephen White wrote:

[#7954] Re: defined? problem? — Dave Thomas <Dave@...> 2000/12/22

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

[#7975] Re: defined? problem? — David Alan Black <dblack@...> 2000/12/22

Hello --

[#7971] Hash access method — Ted Meng <ted_meng@...>

Hi,

20 messages 2000/12/22

[#8030] Re: Basic hash question — ts <decoux@...>

>>>>> "B" == Ben Tilly <ben_tilly@hotmail.com> writes:

15 messages 2000/12/24
[#8033] Re: Basic hash question — "David A. Black" <dblack@...> 2000/12/24

On Sun, 24 Dec 2000, ts wrote:

[#8178] Inexplicable core dump — "Nathaniel Talbott" <ntalbott@...>

I have some code that looks like this:

12 messages 2000/12/28

[#8196] My first impression of Ruby. Lack of overloading? (long) — jmichel@... (Jean Michel)

Hello,

23 messages 2000/12/28

[#8198] Re: Ruby cron scheduler for NT available — "Conrad Schneiker" <schneik@...>

John Small wrote:

14 messages 2000/12/28

[#8287] Re: speedup of anagram finder — "SHULTZ,BARRY (HP-Israel,ex1)" <barry_shultz@...>

> -----Original Message-----

12 messages 2000/12/29

[ruby-talk:7963] Re: defined? problem?

From: "Ben Tilly" <ben_tilly@...>
Date: 2000-12-22 16:48:22 UTC
List: ruby-talk #7963
Dave Thomas <Dave@PragmaticProgrammer.com> wrote:
>
>David Alan Black <dblack@candle.superlink.net> writes:
>
> > The behavior I find most surprising -- even given the underlying
> > principle of defining a variable upon seeing an assignment to it -- is
> > illustrated by this:
> >
> >    irb(main):003:0> if m then m = 123 end
> >    NameError: undefined local variable or method `m' for 
>#<Object:0x4017fc90>
> >    (irb):3:in `irb_binding'
> >    irb(main):004:0> if m then m = 123 end
> >    nil
>
>Let's play Ruby during the parsing stage (remember, we're not
>executing code at this point)
>
>    if                        <keyword, I'm looking for some
>                               kind of expression>
>       m                      <name. I haven't seen an assignment,
>                               so it's a method call>
>         then                 <keyword>
>              m = 123         <assignment to m. remember the fact that
>                               m is a variable for future reference>
>                      end
>
>
>    if                        <keyword, I'm looking for some
>                               kind of expression>
>       m                      <name. I've seen 'm' before. Let me see..
>                               yup, it's a variable, because it was
>                               assigned to>
>
>    etc...
>
>
>Now we'll play Ruby during execution:
>
>    if m then m = 123 end    < OK, I need to call method 'm' to
>                               evaluate the condition. Send 'self'
>                               the message :m. Whoops! undefined
>                               method.>
>
>    if m then m = 123 end    < OK, I need to look up the value of the
>                               variable 'm'. It's nil. The if doesn't
>                               get executed>
>
>
>For what it's worth, I agree that it's an ugly situation, but wihout
>adding declarations, or adding required parentheses to every method
>call, I'm not sure how to get around it (apart possibly from getting
>rid of local variables and making them all attribute methods of the
>current binding).
>
Cool explanation.

Let me sit in the corner and think about this one.

One of the features that I find most useful in Perl is the
strict pragma.  It doesn't stop many deep errors, but it
catches most of my typos upon trying to compile.  Now Ruby's
design is different enough that Perl's notions of strict
(which really are not very strict) are not very useful.  But
I think it would be good if during parsing Ruby kept track
of which methods get called.  If it sees a variable declared
that is the *same* as a method defined in the current class,
that may be a typo.  Likewise keep track of what you see
declared.  Have a keyword like, "method_unit" at which point
all methods used in the current class which cannot be
resolved as methods will be flagged as compile-time errors.

Those two changes would probably catch most accidental
mistakes.  Now I don't know about others.  But typos are among
my most common errors, and having them mostly caught before the
code runs speeds my development significantly.

Cheers,
Ben
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com

In This Thread

Prev Next