# The Io Tutorial

Introduction Math Variables Conditions Lists Loops Strings Further Reading

## Introduction

Begin at the beginning and go on till you come to the end: then stop.
- the King, Alice in Wonderland
This is a quick overview of Io intended for folks that already know how to program.

After compiling Io, run the io executable in the binaries folder. You should get a prompt like this:

    Io 20080120
    Io>

The following is an annotated transcript of a CLI session that will walk through some examples:

### Basic Math

    Io> 1+1
    ==> 2

    Io> 2 sin
    ==> 0.909297

    Io> 2 sqrt
    ==> 1.414214

### Variables

    Io> a := 1
    ==> 1

    Io> a
    ==> 1

    Io> b := 2 * 3
    ==> 6

    Io> a + b
    ==> 7

### Conditions

    Io> a := 2

    Io> if(a == 1) then(writeln("a is one")) else(writeln("a is not one"))
    a is not one

    Io> if(a == 1, writeln("a is one"), writeln("a is not one"))
    a is not one

### Lists

    Io> d := List clone append(30, 10, 5, 20)
    ==> list(30, 10, 5, 20)

    Io> d size
    ==> 4

    Io> d print
    ==> list(30, 10, 5, 20)

    Io> d := d sort
    ==> list(5, 10, 20, 30)

    Io> d first
    ==> 5

    Io> d last
    ==> 30

    Io> d at(2)
    ==> 20

    Io> d remove(30)
    ==> list(5, 10, 20)

    Io> d atPut(1, 123)
    ==> list(5, 123, 20)

### Loops

    Io> for(i, 1, 10, write(i, " "))
    1 2 3 4 5 6 7 8 9 10

    Io> d foreach(i, v, writeln(i, ": ", v))
    0: 5
    1: 123
    3: 20

    Io> list("abc", "def", "ghi") foreach(println)
    abc
    def
    ghi

### Strings

    Io> a := "foo"
    ==> "foo"

    Io> b := "bar"
    ==> "bar"

    Io> c := a .. b
    ==> "foobar"

    Io> c at(0)
    ==> 102

    Io> c at(0) asCharacter
    ==> "f"

    Io> s := "this is a test"
    ==> "this is a test"

    Io> words := s split(" ", "\t") print
    "this", "is", "a", "test"

    Io> s findSeq("is")
    ==> 2

    Io> s findSeq("test")
    ==> 10

    Io> s slice(10)
    ==> "test"

    Io> s slice(2, 10)
    ==> "is is a "

### Further Reading

    Quag's Getting Started Tutorial