[#11822] RCR: Input XML support in the base Ruby — Dave Thomas <Dave@...>

15 messages 2001/03/01

[#11960] Not Ruby, for me, for the moment at least — "Michael Kreuzer" <mkreuzer@... (nospam)>

I wrote on this newsgroup last weekend about how I was considering using

11 messages 2001/03/04

[#12023] French RUG ? — "Jerome" <jeromg@...>

Hi fellow rubyers,

16 messages 2001/03/05

[#12103] disassembling and reassembling a hash — raja@... (Raja S.)

Given a hash, h1, will the following always hold?

20 messages 2001/03/06

[#12204] FEATURE REQUEST: 'my' local variables — Leo Razoumov <see_signature@127.0.0.1>

Ruby is, indeed, a very well designed language.

64 messages 2001/03/07
[#12250] Re: FEATURE REQUEST: 'my' local variables — Leo Razoumov <see_signature@127.0.0.1> 2001/03/07

>>>>> "GK" == GOTO Kentaro <gotoken@math.sci.hokudai.ac.jp> writes:

[#12284] Re: FEATURE REQUEST: 'my' local variables — gotoken@... (GOTO Kentaro) 2001/03/08

In message "[ruby-talk:12250] Re: FEATURE REQUEST: 'my' local variables"

[#12289] Re: FEATURE REQUEST: 'my' local variables — matz@... (Yukihiro Matsumoto) 2001/03/08

Hi,

[#12452] Re: FEATURE REQUEST: 'my' local variables — gotoken@... (GOTO Kentaro) 2001/03/12

In message "[ruby-talk:12289] Re: FEATURE REQUEST: 'my' local variables"

[#12553] Re: FEATURE REQUEST: 'my' local variables — Dave Thomas <Dave@...> 2001/03/13

matz@zetabits.com (Yukihiro Matsumoto) writes:

[#12329] Math package — Mathieu Bouchard <matju@...>

18 messages 2001/03/09

[#12330] Haskell goodies, RCR and challenge — Robert Feldt <feldt@...>

Hi,

19 messages 2001/03/09
[#12374] Re: Haskell goodies, RCR and challenge — matz@... (Yukihiro Matsumoto) 2001/03/10

Hi,

[#12349] Can Ruby-GTK display Gif Png or Jpeg files? — Phlip <phlip_cpp@...>

Ruby-san:

20 messages 2001/03/09

[#12444] class variables — Max Ischenko <max@...>

14 messages 2001/03/12

[#12606] Order, chaos, and change requests :) — Dave Thomas <Dave@...>

17 messages 2001/03/14

[#12635] email address regexp — "David Fung" <dfung@...>

i would like to locate probable email addresses in a bunch of text files,

12 messages 2001/03/14

[#12646] police warns you -- Perl is dangerous!! — Leo Razoumov <see_signature@127.0.0.1>

I just read this story on Slashdot

14 messages 2001/03/14
[#12651] Re: police warns you -- Perl is dangerous!! — pete@... (Pete Kernan) 2001/03/14

On 14 Mar 2001 11:46:35 -0800, Leo Razoumov <see_signature@127.0.0.1> wrote:

[#12691] Re: police warns you -- Perl is dangerous!! — "W. Kent Starr" <elderburn@...> 2001/03/15

On Wednesday 14 March 2001 15:40, Pete Kernan wrote:

[#12709] [OFFTOPIC] Re: police warns you -- Perl is dangerous!! — Stephen White <spwhite@...> 2001/03/16

On Fri, 16 Mar 2001, W. Kent Starr wrote:

[#12655] Re: FEATURE REQUEST: 'my' local variables — "Benjamin J. Tilly" <ben_tilly@...>

>===== Original Message From Leo Razoumov <see_signature@127.0.0.1> =====

18 messages 2001/03/14

[#12706] Library packaging — "Nathaniel Talbott" <ntalbott@...>

I have a project that I'm working on that needs to live two different lives,

30 messages 2001/03/16

[#12840] Looking for a decent compression scheme — Dave Thomas <Dave@...>

14 messages 2001/03/19

[#12895] differences between range and array — "Doug Edmunds" <dae_alt3@...>

This code comes from the online code examples for

16 messages 2001/03/20
[#12896] Re: differences between range and array — "Hee-Sob Park" <phasis@...> 2001/03/20

[#12899] Re: differences between range and array — Jim Freeze <jim@...> 2001/03/20

On Tue, 20 Mar 2001, Hee-Sob Park wrote:

[#12960] TextBox ListBox — Ron Jeffries <ronjeffries@...>

Attached is a little Spike that Chet and I are doing. It is a

13 messages 2001/03/20

[#12991] [ANN] Lapidary 0.2.0 — "Nathaniel Talbott" <ntalbott@...>

Well, here's my first major contribution to the Ruby world: Lapidary. It's a

16 messages 2001/03/20

[#13028] mkmf question — Luigi Ballabio <luigi.ballabio@...>

15 messages 2001/03/21

[#13185] Reading a file backwards — "Daniel Berger" <djberg96@...>

Hi all,

21 messages 2001/03/25
[#13197] Re: Reading a file backwards — "Daniel Berger" <djberg96@...> 2001/03/25

> Hi Dan,

[#13203] Re: Reading a file backwards — Mathieu Bouchard <matju@...> 2001/03/25

On Sun, 25 Mar 2001, Daniel Berger wrote:

[#13210] Re: Reading a file backwards — "Daniel Berger" <djberg96@...> 2001/03/25

"Mathieu Bouchard" <matju@sympatico.ca> wrote in message

[#13374] Passing an array to `exec'? — Lloyd Zusman <ljz@...>

I'd like to do the following:

15 messages 2001/03/31

[#13397] Multidimensional arrays and hashes? — Lloyd Zusman <ljz@...>

Is it possible in ruby to make use of constructs that correspond to

14 messages 2001/03/31

[ruby-talk:11886] Re: Option to allow Python style indenting?

From: Eric Sven Ristad <ristad@...>
Date: 2001-03-02 05:24:09 UTC
List: ruby-talk #11886
   Date: Fri, 2 Mar 2001 12:25:22 +0900
   Posted: Fri, 02 Mar 2001 12:25:21 +0900
   From: matz@zetabits.com (Yukihiro Matsumoto)
   Reply-To: ruby-talk@ruby-lang.org

   In message "[ruby-talk:11878] Re: Option to allow Python style indenting?"
       on 01/03/02, Eric Sven Ristad <ristad@mnemonic.com> writes:

   |A central beauty of Ruby is that most everything is EXPLICIT.

   I want Ruby to be as explicit as possible where it should be explicit,
   and as implicit (or in other word, smart) as possible where it doesn't
   make things confusing.

It's interesting that you chose to make variable scope and function
explicit but make their types and conversions implicit.  Personally, I
think this is the right choice for a scripting/prototyping language.
In my experience, you must adopt strict variable naming conventions
(that distinguish between locals/globals/constants, etc) if you want
your code to be readable.  Ruby takes the very clever step of actually
enforcing its variable naming conventions.  Very nice.

Type declarations and explicit conversions are necessary if you want
to write time- and space-efficient code that is also correct, but they
tend to be annoying in a scripting/protoyping language because (1)
most of the time you can determine the type from its name and use and
(2) you are willing to sacrifice some efficiency for the benefits of
quick prototyping.  So I think you made the right choice here too.

On a related note, I'm continually surprised at how nice the yield
statement is.  To implement iterators in C, I typically write an
enumerator that takes a procedure and applies it to all the elements
in the enumeration.  Something like:

	def vector_map(vector,proc,parameters)
	  for i in (0..array.length-1)
	     is_alive = proc(array[i],parameters)
	     if !is_alive then return end
          end
	end

This is annoying because the named proc cannot enjoy the scope in
which the iterator is called: you have to put its entire environment
in a struct and pass that in through the parameters argument.  The
alternative is to make the iterator itself preserve its state in a
struct, which tends to be substantially more messy when you are
iterating through a complex data structure.

In Ruby, you get the best of both worlds

	def array_map(array)
	  for i in (0..array.length-1)
  	      is_alive = yield array[i] 
	      if !is_alive then return end
          end
	end

because (1) the block you pass to the iterator enjoys the environment
in which the iterator is called, rather than the environment of the
iterator itself and (2) the iterator enjoys its own environment.  This
simple feature makes writing iterators at least 10 times easier than
in C and similar languages.

My only reservation about the Ruby yield statement is that I would
prefer if the arity of the block and yield statements were strictly
matched, to enhance correctness.  Something like: if the block takes
any arguments, then it must take the exact same number of arguments as
the yield statement provides or a runtime error occurs.

Eric

In This Thread