Re: Assignment Operators

Kurtis Rainbolt-Greene <[email protected]> Wed, 16 May 2012 16:07:22 -0500
Newsgroups gmane.comp.lang.io
Message-ID <CAMhJPGi1uMadXFW1Q93THoBMdDmQJ5nCcePU8gZhOBwuMsWCPg@mail.gmail.com>
So while I like :: and : for setterSlot and setSlot symbols, ::: for
setterSlot, :: setSlot, and : for updateSlot seems like overkill.
Suggestions?

On Wed, May 16, 2012 at 3:23 AM, Jan-Paul Bultmann
<[email protected]>wrote:

> **
>
>
> It is there so that you can easily update Object members.
> Take for example the following.
>
> A := Object clone do(
> x := 5
>  nonlocal := method(
> x = 10
> )
>  local := method(
> x := 10
> )
>
> First case you assigned `A x` a new value.
> Second case you created a local variable.
>
> Cheers Jan
>
> On May 16, 2012, at 8:21 AM, Kurtis Rainbolt-Greene wrote:
>
>
>
> So I've been using Io for a bit now, writing a package manager,
> writing a few packages. I even wrote a syntax definition file for
> Sublime Text 2.
>
> One thing I've noticed since writing that defintion file is that it
> doesn't seem like Io needs the "=" character in the assignment
> operators.
>
> Consider the following:
>
> ``` io
> Version := Object clone do(
> major ::= 0
> minor ::= 0
> patch ::= 0
>
> asString := method( "#{major}.#{minor}.#{patch}" )
> )
> ```
>
> Pretty simple object, right? Now imagine if you didn't need the `=`
> characters.
>
> ``` io
> Version: Object clone do(
> major:: 0
> minor:: 0
> patch:: 0
>
> asString: method( "#{major}.#{minor}.#{patch}" )
> )
> ```
>
> Smaller, slightly easier to read, and no confusion with the `==`,
> `!=`, `+=`, `-=`, `>=`, `<=`, `~=`, `&=`, or `||=` operators that
> usually crop up in programming languages.
>
>
>  
>