A revolutionary change: use macro to express a procedure. I should have thinked it as a macro but not a function tree
合并