use std::error; use std::sync::Arc; fn main() { let mut i:isize = 0; let mut d:f64 = 0; match (|| -> Result<(), Arc>{ i = stoi(args[1])?; return Ok(()); })() { Ok(()) => {}, Err(ex) => { { println!("Can't convert to integer!"); exit(1); } } }; match (|| -> Result<(), Arc>{ d = stod(args[2])?; return Ok(()); })() { Ok(()) => {}, Err(ex) => { { println!("Can't convert to floating point!"); exit(1); } } }; println!("{}", format!("i + d = {0:f}", (i) as f64 + d)); }