[#54640] bRuby? — Austin Ziegler <austin@...>

Can anyone explain to me what Yuya's package bRuby

16 messages 2002/11/01
[#54646] Re: bRuby? — Matt Gushee <mgushee@...> 2002/11/01

On Fri, Nov 01, 2002 at 11:40:51AM +0900, Austin Ziegler wrote:

[#55128] Re: bRuby? (Yet another Ruby parser) — ptkwt@...1.aracnet.com (Phil Tomson) 2002/11/07

In article <20021107151904lBE13F@ohmsha.co.jp>,

[#54839] rubyconf notes — Pat Eyler <pate@...>

On Saturday Night, I recommended that attendees of Ruby Conf send off

38 messages 2002/11/04
[#54881] Matz Roundtable Summary (was Re: rubyconf notes) — Paul Duncan <pabs@...> 2002/11/05

Below is my pieced together summary of matz's roundtable summary. It's

[#54862] A vision for Parrot — Daniel Pfeiffer <occitan@...>

Hi,

80 messages 2002/11/04

[#54889] PGP on the list (was: Re: Matz Roundtable Summary) — Eric Hodel <drbrain@...7.net>

Paul Duncan (pabs@pablotron.org) wrote:

12 messages 2002/11/05

[#54906] Win32 support issues — "Gavin Sinclair" <gsinclair@...>

<quote source="roundtable">

14 messages 2002/11/05

[#55091] PGP signatures — "Gavin Sinclair" <gsinclair@...>

From: "Paul Duncan" <pabs@pablotron.org>

18 messages 2002/11/07

[#55149] Making Instace Variables Private/Local — William Djaja Tjokroaminata <billtj@...>

Hi Matz,

27 messages 2002/11/07

[#55221] CPAN Style installer — Tom Clarke <tom@...2i.com>

Hi all,

30 messages 2002/11/08
[#55233] Re: CPAN Style installer — ptkwt@...1.aracnet.com (Phil Tomson) 2002/11/08

In article <Pine.LNX.4.44.0211071926160.7998-100000@localhost.localdomain>,

[#55241] Re: CPAN Style installer — Tom Clarke <tom@...2i.com> 2002/11/08

On Fri, 8 Nov 2002, Phil Tomson wrote:

[#55290] Re: CPAN Style installer — " JamesBritt" <james@...> 2002/11/08

>

[#55291] Re: CPAN Style installer — tom <tom@...2i.com> 2002/11/08

On Sat, 9 Nov 2002, JamesBritt wrote:

[#55304] Re: CPAN Style installer — " JamesBritt" <james@...> 2002/11/08

> From: tom [mailto:tom@u2i.com]

[#55258] Beginner Question (Idiomatic way to subset an array — "Booth, Peter" <Peter.Booth@...>

I'm wondering if there is a more idiomatic way to do the following?

20 messages 2002/11/08
[#55261] Re: Beginner Question (Idiomatic way to subset an array — ahoward <ahoward@...> 2002/11/08

On Fri, 8 Nov 2002, Booth, Peter wrote:

[#55268] return MyClass.new vs self.type.send :new — ahoward <ahoward@...> 2002/11/08

[#55361] Lighting Rod — Eric Armstrong <eric.armstrong@...>

I love Ruby's smalltalk features. I really do.

16 messages 2002/11/09

[#55369] Why use 'include' — Eric Schwartz <emschwar@...>

As requested, here's a FAQ question & answer on the usage of modules

13 messages 2002/11/09

[#55372] Random idea: Procedural CGI?? — "Hal E. Fulton" <hal9000@...>

I've been musing about something today,

17 messages 2002/11/09

[#55442] Recording of the Ruby segement on LL2 — Yohanes Santoso <ysantoso@...>

Hi all,

22 messages 2002/11/09

[#55461] www.ruby-doc.org — " JamesBritt" <james@...>

Jim Freeze's presentation at RubyConf 2002 mentioned, among other things, the

18 messages 2002/11/10

[#55563] EuRuKo: European Ruby conference — Armin Roehrl <armin@...>

Hi all,

15 messages 2002/11/11

[#55571] ruby-dev summary 18613-18710 — TAKAHASHI Masayoshi <maki@...>

Hi all,

26 messages 2002/11/11
[#55926] Re: ruby-dev summary 18613-18710 — timsuth@... (Tim Sutherland) 2002/11/15

In article <20021112020739J.maki@rubycolor.org>, TAKAHASHI Masayoshi wrote:

[#55929] Re: ruby-dev summary 18613-18710 — dblack@... 2002/11/15

Hi --

[#55955] Re: ruby-dev summary 18613-18710 — timsuth@... (Tim Sutherland) 2002/11/15

In article <Pine.LNX.4.44.0211142157370.25867-100000@candle.superlink.net>,

[#55750] Another Newbie question regarding instance variables? — montana <montana@...99.bsd.st>

The value of an instance variable is only available to the instance of the class, whereas the value of the class variable is available to all instances of the class? Is this correct?

10 messages 2002/11/13

[#55815] RubyConf 2002 Slides for FreeRIDE Presentation — "Curt Hibbs" <curt@...>

I finally got the slides online from Rich Kilmer's FreeRIDE presentation at

40 messages 2002/11/14
[#55828] Re: RubyConf 2002 Slides for FreeRIDE Presentation — " JamesBritt" <james@...> 2002/11/14

>

[#55829] Re: RubyConf 2002 Slides for FreeRIDE Presentation — "Curt Hibbs" <curt@...> 2002/11/14

JamesBritt wrote:

[#56087] Re: RubyConf 2002 Slides for FreeRIDE Presentation — Robert McGovern <tarasis@...> 2002/11/17

Curt Hibbs wrote:

[#56088] Re: RubyConf 2002 Slides for FreeRIDE Presentation — "Rich Kilmer" <rich@...> 2002/11/17

Extensibility IN RUBY was the key thing for us. We wanted the IDE to be

[#55818] regex help — "Shashank Date" <sdate@...>

Using ruby 1.7.3 (2002-10-12) [i386-mswin32] on Win XP (Home)

14 messages 2002/11/14

[#55842] Ruby equivalent to Python's map()? — wolfoxbr@... (Roberto Amorim)

Hi...

18 messages 2002/11/14

[#56045] Not really a ruby question, but this is a smart group. Win32 file.write timing. — jcb@... (MetalOne)

I am trying to write non-compressed video to a file at 40 fps.

16 messages 2002/11/16

[#56119] ruby-dev summary 18711-18810 — Minero Aoki <aamine@...>

Hi all,

34 messages 2002/11/18

[#56131] identing ruby in vim — Maur兤io <briqueabraque@...>

Hi,

14 messages 2002/11/18

[#56158] install.rb/setup.rb question — ptkwt@...1.aracnet.com (Phil Tomson)

I want to install a script that will be run as an executable which isn't a

26 messages 2002/11/18

[#56250] Need help dynamically creating classes. — pgregory@... (Paul Gregory)

I have a system at the moment where I create 'things' based on a base

11 messages 2002/11/19

[#56300] untainted, unfrozen, honest-to-god session data! — "Chris" <nemo@...>

Hello,

12 messages 2002/11/20

[#56376] Interpreted vs compiled [FAQ] defining methods anywhere — Daniel Carrera <dcarrera@...>

Hello,

13 messages 2002/11/21
[#56378] Re: [FAQ] Interpreted vs compiled [FAQ] defining methods anywhere — "Iain 'Spoon' Truskett" <spoon-dated-1039065493.b360fd@...> 2002/11/21

* Daniel Carrera (dcarrera@math.umd.edu) [21 Nov 2002 16:07]:

[#56388] Ruby is too slow — jcb@... (MetalOne)

I have been writing some image processing algorithms that run on incoming

37 messages 2002/11/21

[#56440] Multiple constructors? — christopher.j.meisenzahl@...

18 messages 2002/11/21

[#56469] The ultimate Application — "Dat Nguyen" <thucdat@...>

13 messages 2002/11/21

[#56593] Ruby idom needed — Robert Cowham <rc@...>

What's the best ruby idiom for the following Perl:

23 messages 2002/11/24

[#56633] Things That Newcomers to Ruby Should Know (11/24/02) — William Djaja Tjokroaminata <billtj@...>

Hi,

56 messages 2002/11/25
[#56679] Re: Things That Newcomers to Ruby Should Know (11/24/02) — William Djaja Tjokroaminata <billtj@...> 2002/11/25

Hi,

[#56694] Re: Things That Newcomers to Ruby Should Know (11/24/02) — "Gavin Sinclair" <gsinclair@...> 2002/11/26

From: "Simon Cozens" <simon@simon-cozens.org>

[#56695] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Daniel Carrera <dcarrera@...> 2002/11/26

[#56722] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Austin Ziegler <austin@...> 2002/11/26

On Tue, 26 Nov 2002 09:21:48 +0900, Daniel Carrera wrote:

[#56725] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Daniel Carrera <dcarrera@...> 2002/11/26

> It's applicable to a small subset of the total set of classes.

[#56726] Re: Things That Newcomers to Ruby Should Know (11/24/02) — "Gavin Sinclair" <gsinclair@...> 2002/11/26

[#56729] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Daniel Carrera <dcarrera@...> 2002/11/26

[snip]

[#56738] Re: Things That Newcomers to Ruby Should Know (11/24/02) — dblack@... 2002/11/26

Hi --

[#56744] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Jason Persampieri <helgaorg@...> 2002/11/26

> You're not changing the letter 'a' itself; you're

[#56764] Re: Things That Newcomers to Ruby Should Know (11/24/02) — "Hal E. Fulton" <hal9000@...> 2002/11/26

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

[#56807] Re: Things That Newcomers to Ruby Should Know (11/24/02) — Jason Persampieri <helgaorg@...> 2002/11/26

OK... I get it... I understood your argument (although

[#56812] Re: Things That Newcomers to Ruby Should Know (11/24/02) — William Djaja Tjokroaminata <billtj@...> 2002/11/26

Jason Persampieri <helgaorg@yahoo.com> wrote:

[#56814] Re: Things That Newcomers to Ruby Should Know (11/24/02) — dblack@... 2002/11/26

Hi --

[#56665] FXRuby on Mandrake 8.2 — Ludo <coquelle@...>

Hi, could someone help a beginner rubyer please ?

15 messages 2002/11/25

[#56708] Default value of property — Tim Bates <tim@...>

I have an object, with a method that returns another object, or nil under

20 messages 2002/11/26

[#56719] each_with_index & collect_with_index? — Tim Bates <tim@...>

Array.each (and others) have an alternative .each_index which passes the index

34 messages 2002/11/26
[#56734] Re: each_with_index & collect_with_index? — dblack@... 2002/11/26

Hi --

[#56800] Re: each_with_index & collect_with_index? — Gordon Miller <gmiller@...> 2002/11/26

> As for the second.... I recently appointed myself President of

[#56845] Re: each_with_index & collect_with_index? — why the lucky stiff <ruby-talk@...> 2002/11/27

Gordon Miller (gmiller@promisemark.com) wrote:

[#56849] Re: each_with_index & collect_with_index? — Jason Persampieri <helgaorg@...> 2002/11/27

> It would be really cool if, instead of having a

[#56851] Re: each_with_index & collect_with_index? — dblack@... 2002/11/27

Hi --

[#56772] RCR: Stack, Queue alias methods in Array — Martin DeMello <martindemello@...>

Rationale: Ruby arrays can be easily used as stacks and queues, but it's

46 messages 2002/11/26
[#56793] Re: RCR: Stack, Queue alias methods in Array — matz@... (Yukihiro Matsumoto) 2002/11/26

Hi,

[#56797] Re: RCR: Stack, Queue alias methods in Array — Nikodemus Siivola <tsiivola@...> 2002/11/26

[#56967] call-by-reference problem again — Shannon Fang <xrfang@...>

Hi there,

23 messages 2002/11/27
[#56970] Re: call-by-reference problem again — William Djaja Tjokroaminata <billtj@...> 2002/11/27

Shannon Fang <xrfang@hotmail.com> wrote:

[#56972] Re: call-by-reference problem again — Dave Thomas <Dave@...> 2002/11/27

William Djaja Tjokroaminata <billtj@y.glue.umd.edu> writes:

[#57146] Ruby ++, the one element and generators — "MikkelFJ" <mikkelfj-anti-spam@...>

21 messages 2002/11/30

[#57172] Numerical Ruby — Olivier Saut <Olivier.Saut@...>

Hi all,

14 messages 2002/11/30

Ruby ++, the one element and generators

From: "MikkelFJ" <mikkelfj-anti-spam@...>
Date: 2002-11-30 20:19:29 UTC
List: ruby-talk #57146
In algebraic theory, terms such as groups and rings are used to define what
addition and multiplication mean. I'm here trying to use something I learned
and forgot a long time ago, so bear with me, but I think the concepts may
apply here.

In Ruby += has been defined as a combination of assignment and the plus
operation (i.e. addition).

In other languages ++ has been defined as the addition with one.

In algebra, the one element is a particularly important element (along with
zero) because you can generate all values by systematically adding the one
element to the previous result, starting with the zero element.

It appears to me that all the talk about why ++ is not valid due to
anti-shoe-box behaviour is beside the point, because the would also be true
for += :
a = 1
a += 2 # ==> 3
We are not redefining any integers here, we are replacing the reference with
a reference to a new object.

The following makes just as much sense as the above:

a = 1
a++ # ==> 2

The point, is that whatever problems there are with ++ and object
modifications applies equally to += and the next, next! method, and these
problems have been solved. We can't, however, define ++ without help from
the Ruby interpreter because ++ should be specially interpreted at the same
level as += becuase assignment to self is not possible.
In other words, ++ is an operator that replaces a reference to one object
with a reference to the next object. This operation may or may not be an
inplace operation. Thus we have ++ and ++!.
In fact this is exactly the same as the next and next! methods, thus we just
need the interpreter to go along with these synonyms. Note that integers do
not have a next! operation and float do not have a next method at all - this
makes perfect sense:

In algebraic terms, there is no 'one' element for Real numbers, while
natural numbers (integers) do have a one element. Furthermore it is not
within the realms of Ruby to redefine the natural numbers, thus no next!
method.

The ++ operator is really a 'generator' in algebraic terms. It should
generate the next element in the set of all elements of a given type, such
as the natural numbers. When a one element is defined, the generator is the
add one operator - it is not necessarily the only generator, but it works.
(stray thought: generators are used on error correcting codes to generate
valid values among all values - a very simple error correcting code would be
to define 0, 4, 8, ..., i.e. generator is x += 4. correct(x) = x + 2 mod 4,
thus if someone accidentally added 1 to x, it won't destroy the
information).

In Ruby we don't really care about exact algebraic generators. For example
it is nice to have the next string: "helo".next ==> "help". This doesn't
generate all valid strings, yet it is rather useful.

Thus we can piggyback on the "next" method to define our generator - or we
may define our generator as "generator" and define next in terms of the
generator whatever...
The default generator can be define based on the one element, whenever it is
defined. As an example, let us define the one element for Float.
Algebraically it doesn't make sense, except by doint so we actually define a
new value type - which incidentally happens to be the natural numbers if we
define one as an arbitrary non-zero float value, it just has a different
representation:

We can define a default generator and a default next method for Object:

class Object
  def generator
    self + one
  end
  def next
    generator
  end
end

Or just ignore the generator stuff:

class Object
   def next
     self + one
    end
end

We can define the one element for any class we like:

class Float
  def one
    1.0
  end
end

a = 1.0
a.next  # ==> 2.0


No we could equally well write

a++ as a synonym for
a = a.next

and

a++! as a synom for
a.next!

Note that we do not have a default definition of next!, but it may be
referencing an object that does have next! defined, such as a string.

Obviously iterators are obvious candiates for ++:
In the following notice the importnat difference between ++ and ++!
If I had used ++! I would not have been able to reference two values
in the collection at the same time, yet I feel ++ does exactly what I expect
in the following. This suggests there really is a difference between ++ and
++! and both are meaningful in their own terms.

if my_collection.size > 1
 begin
  c = 0
  a = my_collection.first
  k = a
  ++a
  while a != my_collection.end
    b = a
    a++
    if a.value > b.value
      a.swap_values b
      c++
  end
 end while c > 0
end

def unique x
  if not my_collection.exist(x)
    return x
  end
  x = x + "~a"
  while my_collection.exist(x)
    x++!
  next
end

Of course, the above examples could be written with next and next!. In
particular, the ++! would probably be nicer using next! But the ++ operator
makes the operation somewhat cleaner that a = a.next.


Mikkel




In This Thread

Prev Next