[#8566] Visions for 2001/1.7.x development? — Robert Feldt <feldt@...>

Hi matz and other Ruby developers,

18 messages 2001/01/03
[#8645] Re: Visions for 2001/1.7.x development? — matz@... (Yukihiro Matsumoto) 2001/01/04

Hi,

[#8580] bug?? — jmichel@... (Jean Michel)

I don't understand the following behaviour:

19 messages 2001/01/03

[#8633] Interesting Language performance comparisons - Ruby, OCAML etc — "g forever" <g24ever@...>

13 messages 2001/01/04

[#8774] No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...>

So, why not include Comparable in Array by default? It shouldn't have any

28 messages 2001/01/07
[#8779] Re: No :<, :>, etc. methods for Array — matz@... (Yukihiro Matsumoto) 2001/01/07

Hi,

[#8780] Re: No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...> 2001/01/07

matz@zetabits.com (Yukihiro Matsumoto) wrote:

[#8781] Re: No :<, :>, etc. methods for Array — gotoken@... (GOTO Kentaro) 2001/01/07

In message "[ruby-talk:8780] Re: No :<, :>, etc. methods for Array"

[#8782] Re: No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...> 2001/01/07

gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) wrote:

[#8829] Sandbox (again) — wys@... (Clemens Wyss)

Hi,

20 messages 2001/01/08
[#8864] Re: Sandbox (again) — Clemens Hintze <c.hintze@...> 2001/01/08

On 8 Jan, Clemens Wyss wrote:

[#8931] String confusion — Anders Bengtsson <ndrsbngtssn@...>

Hello everyone,

21 messages 2001/01/09
[#8937] Re: String confusion — matz@... (Yukihiro Matsumoto) 2001/01/09

Hi,

[#8953] Please remove account from files — "Thomas Daniels" <westernporter@...>

Please take my e-mail address from your files and "CANCEL" my =

14 messages 2001/01/09
[#8983] Re: Please remove account from files — John Rubinubi <rubinubi@...> 2001/01/10

On Wed, 10 Jan 2001, Thomas Daniels wrote:

[#9020] time to divide -talk? (was: Please remove account from files) — Yasushi Shoji <yashi@...> 2001/01/10

At Wed, 10 Jan 2001 14:23:30 +0900,

[#9047] Re: time to divide -talk? (was: Please remov e account from files) — Aleksi Niemel<aleksi.niemela@...>

Yasushi Shoji:

27 messages 2001/01/10
[#9049] Re: time to divide -talk? — Yasushi Shoji <yashi@...> 2001/01/10

At Thu, 11 Jan 2001 00:20:45 +0900,

[#9153] what about this begin? — Anders Strandl Elkj誡 <ase@...> 2001/01/11

[#9195] Re: Redefining singleton methods — ts <decoux@...>

>>>>> "H" == Horst Duch=EAne?= <iso-8859-1> writes:

10 messages 2001/01/12

[#9242] polymorphism — Maurice Szmurlo <maurice@...>

hello

73 messages 2001/01/13

[#9279] Can ruby replace php? — Jim Freeze <jim@...>

When I read that ruby could be used to replace PHP I got really

15 messages 2001/01/14

[#9411] The Ruby Way — "Conrad Schneiker" <schneiker@...>

As a member of the "Big 8" newsgroups, "The Ruby Way" (of posting) is to

15 messages 2001/01/17

[#9462] Re: reading an entire file as a string — ts <decoux@...>

>>>>> "R" == Raja S <raja@cs.indiana.edu> writes:

35 messages 2001/01/17
[#9465] Re: reading an entire file as a string — Dave Thomas <Dave@...> 2001/01/17

raja@cs.indiana.edu (Raja S.) writes:

[#9521] Larry Wall INterview — ianm74@...

Larry was interviewed at the Perl/Ruby conference in Koyoto:

20 messages 2001/01/18
[#10583] Re: Larry Wall INterview — "greg strockbine" <gstrock@...> 2001/02/08

Larry Wall's interview is how I found out

[#9610] Re: 101 Misconceptions About Dynamic Languages — "Ben Tilly" <ben_tilly@...>

"Christian" <christians@syd.microforte.com.au> wrote:

13 messages 2001/01/20

[#9761] Re: 101 Misconceptions About Dynamic Languages — ts <decoux@...>

>>>>> "C" == Christoph Rippel <crippel@primenet.com> writes:

16 messages 2001/01/23

[#9792] Ruby 162 installer available — Dave Thomas <Dave@...>

15 messages 2001/01/24

[#9958] Re: Vim syntax files again. — "Conrad Schneiker" <schneik@...>

Hugh Sasse wrote:

14 messages 2001/01/26
[#10065] Re: Vim syntax files again. — Hugh Sasse Staff Elec Eng <hgs@...> 2001/01/29

On Sat, 27 Jan 2001, Conrad Schneiker wrote:

[#9975] line continuation — "David Ruby" <ruby_david@...>

can a ruby statement break into multiple lines?

18 messages 2001/01/27
[#9976] Re: line continuation — Michael Neumann <neumann@...> 2001/01/27

On Sat, 27 Jan 2001, David Ruby wrote:

[#9988] Re: line continuation — harryo@... (Harry Ohlsen) 2001/01/28

>A statement break into mutliple lines if it is not complete,

[ruby-talk:8917] Re: Modules and mixins

From: "Ben Tilly" <ben_tilly@...>
Date: 2001-01-09 11:52:14 UTC
List: ruby-talk #8917
"Christoph Rippel" <crippel@primenet.com> wrote:
>
> > -----Original Message-----
> > From: Ben Tilly [mailto:ben_tilly@hotmail.com]
> > Sent: Monday, January 08, 2001 08:26 PM
> > To: ruby-talk ML
> > Subject: [ruby-talk:8897] Re: Modules and mixins
>...
> > If length is the primary issue (yes, I renamed the method):
>
>The length was not the issue on the python ml. The original author of the 
>MRange
>class - he called  it the ``Dice class '' if I remember correctly - just 
>wanted to
>demonstrate that the block & closure implementation are definite highlights 
>of ruby.
>I was a little amused about a response on the python ml, arguing that a 
>rather
>beautiful but also long winded iterator implementation which explicitly 
>calculates
>the position of an individual element is a conceptually superior solution. 
>Even so
>``block  iterators'' probably take a while to get used to they are 
>preferable over
>the ``position  math'' of something like ...
>
Say no more.  Explicit calculations open up room for all
sorts of potential mistakes.
>
>class Combs
>     def initialize(m,n,p=1)
>         raise ArgumentError if m - n < p
>         @m = m
>  	  @n = n
>         @p = p
>      end
>      def each
>        __e(@m,@n) { |l| yield l }
>      end
>private
>      def __e(i,j)
>          if j  <=  @p
>             i.downto (1) { |l|  yield [l] }
>           else
>             i.downto (j) \
>             { |l|  __e(l-@p,j-@p) { |r|  yield [l]+r }}
>           end
>       end
>end
>
>Combs.new (8, 5, 2).each \
>{| l|  puts l.join " "}
>
>
>The implementation of the original Dice version was actually closer to your 
>solution
>and if you throw in your argument separation trick

Not much of a trick.  I just intended to use argument
processsing to do what would otherwise be mechanical in
my original Perl version.

> >def bind_loops(fn, my_range, *more_args)
>                         ^^^^^^^^^^^
>...
> >        bind_loops(bound_fn, *more_args) :
>                                ^^^^^^^^
> >end
>
>could be rewritten in a rather compact form
>
>def  each (arg,*more_args)
>      ( [] != args ) ?
>       	arg.each {|l| each(*more_args) {|r| yield [l]+ r }} :
>       	arg.each { |r| yield [r] }
>end
>
>each( 1..2, 'a'..'c', 'A'..'D') \
>{ |args|   puts args.join " " }
>
Huh.  This is what I said I had not played with.

Looking at this "feels" like an inside-out twist on
my solution.  I think I like the pattern of this one
better, just a tad more direct.  However I would
prefer different names:

    def  each_comb (arg,*more_args)
      ( [] != more_args ) ?
        arg.each {|l| each_comb(*more_args) {|r| yield [l]+ r }} :
        arg.each { |r| yield [r] }
    end

    each_comb( 1..2, 'a'..'c', 'A'..'D') \
      { |args|   puts args.join " " }

Why?  Because to me "each" is an already well-defined
concept and each combination doesn't not seem to me to
be at all the same.  So the subtly different names
make that intent a lot clearer.  (Well for me at least.)

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

In This Thread

Prev Next