It's possible to "extend" Io's syntax using the squareBrackets and curlyBrackets hooks. (Hat tip: jer)
Creating a "list literal" ala Python and Ruby:
Object squareBrackets := method(
r := List clone
call message arguments foreach(arg,
r push(call sender doMessage(arg)))
r
)
x := [1, 2, 3]
writeln(x)
# list(1, 2, 3)
Creating a [] indexing "operator":
List squareBrackets := method(index,
self at(call evalArgAt(0))
)
names := ["Harry", "Ron", "Hermione"]
writeln(names[1])
# Ron