首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于嵌套的分类问题,自递归clojure multimethod是一个很好的设计吗?

对于嵌套的分类问题,自递归clojure multimethod是一个很好的设计吗?
EN

Stack Overflow用户
提问于 2011-03-01 19:57:00
回答 2查看 465关注 0票数 2

我有大量的数据地图,每一张地图都需要以嵌套的方式分类。

例如,给定的项可以是A或B(由函数确定),如果是B,则可以是C或D(由另一个函数确定)等等。在每个阶段,可以向每个地图中添加更多与分类有关的数据。进行分类的功能本身是相当复杂的,可能需要引入额外的数据来进行确定。

自递归多重方法是否是构造代码以实现此目的的一种好方法?我会派遣到目前为止确定的最具体类型的一个项目,或返回最好的当前分类时,不能做进一步的。

我可以在一个单独的分类函数中使用嵌套的ifs来获得想要的效果,但是天哪太难看了。

在这里,多重方法是一个很好的选择吗?还是我让事情变得过于复杂,而忽略了一种更简单的代码构造方法呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-01 21:58:54

看来多个方法在这里可能很有用。我想所有的复杂性都在调度函数中?因此,一旦对顶级进行分类,就会再次使用触发不同实例的更多信息来启动multimethod?

另一种想法是以遍历决策树为基础,而不是遍历您的输入。我想知道使用clojure.zip遍历分类函数树是否是一个有趣的解决方案。每个节点上的分类函数可以告诉您下一步如何遍历树(要转到哪个子节点)。您不一定需要clojure.zip,但是它已经有树导航了。

票数 1
EN

Stack Overflow用户

发布于 2011-03-01 21:45:41

多方法是很棒的,因为当问题的复杂性要求时,它们允许这种级别的调度。我说如果它能做你想做的事就去做吧。

也许您可以构建一个isa hierarchy来帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5159625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档