1 //******************************************************************************
3 //******************************************************************************
7 var MalValPrintReadably = true
9 func with_print_readably<T>(print_readably: Bool, fn: () -> T) -> T {
10 let old = MalValPrintReadably
11 MalValPrintReadably = print_readably
13 MalValPrintReadably = old
17 func pr_str(m: MalVal, _ print_readably: Bool = MalValPrintReadably) -> String {
18 return with_print_readably(print_readably) {
20 return print_readably ? escape(m.description) : m.description
23 return ":\(m.description)"