diff options
author | Jesse Luehrs <doy@tozt.net> | 2014-07-02 02:54:21 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2014-07-02 02:54:21 -0400 |
commit | e620daf3b1a40ae825c625bc4328fb7d2b3ee8b6 (patch) | |
tree | faa469408ee78623eaa8d2720dcbb36096788ca1 /examples/03_sample-filter.rs | |
download | intro-to-rust-yapc-na-2014-e620daf3b1a40ae825c625bc4328fb7d2b3ee8b6.tar.gz intro-to-rust-yapc-na-2014-e620daf3b1a40ae825c625bc4328fb7d2b3ee8b6.zip |
Diffstat (limited to 'examples/03_sample-filter.rs')
-rw-r--r-- | examples/03_sample-filter.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/examples/03_sample-filter.rs b/examples/03_sample-filter.rs new file mode 100644 index 0000000..3fc0bff --- /dev/null +++ b/examples/03_sample-filter.rs @@ -0,0 +1,22 @@ +fn main() { + // A simple integer calculator: + // `+` or `-` means add or subtract by 1 + // `*` or `/` means multiply or divide by 2 + + let program = "+ + * - /"; + let mut accumulator = 0i; + + for token in program.chars().filter(|&x| { x != ' ' }) { + match token { + '+' => accumulator += 1, + '-' => accumulator -= 1, + '*' => accumulator *= 2, + '/' => accumulator /= 2, + _ => fail!("unknown character"), + } + } + + println!("The program \"{}\" calculates the value {}", + program, accumulator); +} + |