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}