basic_expressions/basic_expressions.rs
1use wolfram_library_link::{
2 self as wll,
3 expr::{Expr, Symbol},
4};
5
6/// This function is loaded by evaluating:
7///
8/// ```wolfram
9/// LibraryFunctionLoad[
10/// "/path/to/libbasic_expressions.dylib",
11/// "echo_arguments",
12/// LinkObject,
13/// LinkObject
14/// ]
15/// ```
16#[wll::export(wstp)]
17pub fn echo_arguments(args: Vec<Expr>) -> Expr {
18 let arg_count = args.len();
19
20 for arg in args {
21 // Echo[<arg>]
22 wll::evaluate(&Expr::normal(Symbol::new("System`Echo"), vec![arg]));
23 }
24
25 Expr::string(format!("finished echoing {} argument(s)", arg_count))
26}