Assignment Operators

Kurtis Rainbolt-Greene <[email protected]> Wed, 16 May 2012 01:21:47 -0500
Newsgroups gmane.comp.lang.io
Message-ID <CAMhJPGj7ri07DXXeuKiQk571vRmx+mfznyjto=LSF0U2HneRdA@mail.gmail.com>
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.