Rust 0.7

前回: Rust 0.4 - M59のブログ

Rust 0.7 向けに書きなおし。

// for Rust 0.7

extern mod extra;

use sort = extra::sort::quick_sort;

fn main() {
    let (port, chan) = stream();
    let chan = std::comm::SharedChan::new(chan);
    for std::uint::iterate(0, 100) |i| {
        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 = ~[];
    for 100.times {
        res.push(port.recv());
    }

    sort(res, |t, u| t.first() <= u.first());
    for res.iter().advance |t| {
        std::io::println(t.second());
    }
}