diff --git a/src/stl/strings.rs b/src/stl/strings.rs index c26a75a..7a9f6c9 100644 --- a/src/stl/strings.rs +++ b/src/stl/strings.rs @@ -22,12 +22,11 @@ pub const ECHO_DOCSTRING: &str = "traverses any number of arguments. Prints their evaluated values on a new line for each."; pub fn echo_callback(ast: &Seg, _syms: &mut SymTable) -> Result { - if ast.len() == 1 { - println!("{}", ast.car); - } else { - ast.circuit(&mut |arg: &Ctr| print!("{}", arg) == ()); - } - + ast.circuit(&mut |arg: &Ctr| match arg { + Ctr::String(s) => print!("{}", s) == (), + _ => print!("{}", arg) == (), + }); + println!(); Ok(Ctr::None) }