The [... _ ...] macro exhibits a pretty unexpected behavior. For example: arc> ([_ 1 2] +) 3 arc> (mac _ (x y) `(* ,x ,y)) #3(tagged mac #<procedure>) arc> ([_ 1 2] +) 2 This may lead to quite horrible bugs, specially w/o a package system. Just imagine a library setting `_' to something that would _sometimes_ behave correctly. Finding what was wrong would be a nightmare. A possible solution would be to somehow restrict assignment to _ outside of the brackets macro... Or making it unbound it at the beginning of the brackets macro... However, this would break the "let the programmer do what he or she wants" maxim... |