Hi,

From: "Csaba Henk" <csaba / phony_for_avoiding_spam.org>
>
> On 2005-02-18, Bill Kelly <billk / cts.com> wrote:
> > I love elegant syntax.  That Smalltalk didn't need an "if"
> > statement was something that instantly attracted me to the
> > language.
> 
> What do you mean by "needing" if? Ruby neither needs if, it just has it.

Ah, sorry - I wasn't intending to compare Smalltalk directly
to Ruby here.  I got into Smalltalk (albeit briefly) before I'd
heard of Ruby.  

From http://en.wikipedia.org/wiki/Smalltalk_programming_language

    One surprising feature of Smalltalk is that the traditional
    progamming constructs: if-then-else, for, while, etc. are
    not built into the language. All of these things are
    implemented using objects.  For example, decisions are made
    by sending an ifTrue: message to a Boolean object, and passing
    a fragment of code to execute if the Boolean is True.  There
    are only three built-in executable constructs:

      - sending a message to an object; 
      - assigning an object to a variable; 
      - returning an object from a method; 

    and a few syntactic constructs for declaring literal objects
    and temporary variables.

But the above was something that delighted me about Smalltalk
when learning about it.  It just seemed like a mark of quality
to me that its designer had been able to derive a useful,
expressive syntax from so few essentials.

(Of course just prior to studying Smalltalk I had unwisely
volunteered to take over a large VB6 project... If only I'd
spent 15 minutes studying the VB6 language reference before
agreeing to that.... Gack! :)

> You can define if/then/else type methods for objects with a few line of
> Ruby code easily (without using "and", "case" and any other
> conditional-like construct, of course, I mean it that way). I made it up
> to have
> 
> loop { 
>   gets.ifthen { 
>     puts "you fed me a line" 
>   }.else { 
>     puts "bye"; exit
>   } 
> }
>  
> as valid code.

:) ... Ruby rocks ... :)


Regards,

Bill