合理选择协作策略,可以进一步提高多方法协作优化方法的优化特性。
这种多重方法又转为一个具有node-eval函数的访问者。
在Clojure中,多重方法是一种特殊的函数类型,它能将调用拆分为两个步骤。
最后,我们创建一个多重方法来处理求值,即eval-expr。
随后,我们利用defmethod为希望处理的每种类型创建多重方法的实现。
与Java访问者解决方案相似,我们可以利用一个多重方法(multimethod),为树中的每一个节点类型实现一个eval-concat操作。