Rust 0.9

例のごとくFizzBuzz

// for Rust 0.9

fn main() {
    let (port, chan) = SharedChan::new();
    for i in range(0, 100) {
        let chan = chan.clone();
        do spawn {
            let i = i + 1;
            let b = match (i % 3, i % 5) {
                (0, 0) => ~"FizzBuzz",
                (0, _) => ~"Fizz",
                (_, 0) => ~"Buzz",
                _      => i.to_str()
            };
            chan.send((i, b));
        }
    }

    let mut res = ~[];
    100.times(|| {
        res.push(port.recv());
    });

    res.sort_by(|t, u| t.first().cmp(&u.first()));

    for t in res.iter() {
        std::io::println(t.second());
    }
}

細かい部分が変わる。do文はprocに対してだけ使えるようになった。