[#1263] Draft of the updated Ruby FAQ — Dave Thomas <Dave@...>

33 messages 2000/02/08

[#1376] Re: Scripting versus programming — Andrew Hunt <andy@...>

Conrad writes:

13 messages 2000/02/15

[#1508] Ruby/GTK and the mainloop — Ian Main <imain@...>

17 messages 2000/02/19
[#1544] Re: Ruby/GTK and the mainloop — Yasushi Shoji <yashi@...> 2000/02/23

Hello Ian,

[#1550] Re: Ruby/GTK and the mainloop — Ian Main <imain@...> 2000/02/23

On Wed, Feb 23, 2000 at 02:56:10AM -0500, Yasushi Shoji wrote:

[#1516] Ruby: PLEASE use comp.lang.misc for all Ruby programming/technical questions/discussions!!!! — "Conrad Schneiker" <schneiker@...>

((FYI: This was sent to the Ruby mail list.))

10 messages 2000/02/19

[#1569] Re: Ruby: constructors, new and initialise — Yukihiro Matsumoto <matz@...>

The following message is a courtesy copy of an article

12 messages 2000/02/25

[ruby-talk:01270] Re: Draft of the updated Ruby FAQ

From: matz@... (Yukihiro Matsumoto)
Date: 2000-02-08 16:21:28 UTC
List: ruby-talk #1270
Hi,

In message "[ruby-talk:01268] Draft of the updated Ruby FAQ"
    on 00/02/08, Clemens Hintze <clemens.hintze@alcatel.de> writes:

|1.4 What is the history of Ruby?
|   ... wanted a genuine object-oriented, easy-to-use object-oriented
|   scripting language.
|
|Perhaps delete one 'object-oriented'? If matz agrees, of course!

Agreed. :-)
Is this my typo?  ...checking... It appears so, sorry.

|2.1 Does assignment generate a new copy of an object? 
|   ... All variables ... If they have not been initialized, they
|   reference the object nil. ...
|
|This is not true for local variables. If they wasn't initialized, they
|are void. It is an error to use them!

Well, local variables can be declared but not initialized, e.g.

  if false
    foo = 42
  end
  p foo # uninitialized local variable whose value is nil.

|3.1 What is an iterator? 
|   An iterator is a method which is passed a block ...
|
|IMHO, blocks are not passed, but attached to methods. If they would be
|passed, it could mean that they also are objects. But I feel they are
|not, at least not in Ruby's sense of objects.

Agreed.  In addition, I assume iterators as 'a method which USES
attached block' lately.

|3.3 How is a block used in an iterator? 
|   There are three ways to execute a block from an iterator method:
|   ... (3) using Proc.new.
|
|Proc.new creates an Proc instance from a attached block. But it does
|not execute it. This has do be done via 'call' anyway.

Yes, but I think creating Proc out of block is using it.  So it may be
better to say:

>   There are three ways to USE a block from an iterator method:

|4.1 What does :var mean? 
|   A colon followed ..., but the ``:'' form will create a local
|   variable if it doesn't already exist.
|
|I could not verify it! I have tried 
|
|   ruby -e 'def ttt; p :a; p a; end; ttt'
|   /tmp/rb4haGUE:1:in `ttt': undefined local variable or method `a' for ...

:symbol registers that identifier in symbol table, but does not create
local variable.  Oh, by the way, I'm planning to make symbols distinct
object, not fixnums in near future.

|5.2 Are +, -, * ... operators? 
|
|   However, the following are built-in control structures, not
|   methods, which cannot be overridden.
|
|   =, .., ..., !, not, &amp;&amp;, and, |, or, ~, ::
|
|I think you mean '&&' instead of &amp;&amp;, yes? I do not know right
|now, but can I overload '||'? I do not think so.

Yes.  | and ~ can be overridden.

|But the visibility thing is the same? That means protected is somewhat
|superfluos, isn't it (from the newbie point-of-view)?

protected is sometime useful for say internal attribute.  e.g. if you
want to sort object by their internal attribute, but do not want to
make the attribute public, you can declare the attribute (i.e. access
method) as protected.

|7.22 What is the difference between thread and fork? 
|   ... 
|   Thread and fork have following characteristics: 
|   ...
|   o thread does not cause thrashing. 
|
|What does that mean in opposition to processes spawned with 'fork'?

Think of forking 10000 times, your system would hang. OTOH, Ruby would
not hand nor crash by creating 10000 threads (incredibly slow tough).

							matz.

In This Thread