相关疑难解决方法(0)

摘要远离Clojure中的数据结构实现细节

我正在Clojure中开发一个具有多个子结构的复杂数据结构.

我知道我会想要随着时间推移扩展这个结构,有时可能想要改变内部结构而不会破坏数据结构的不同用户(例如我可能想要将一个向量更改为一个hashmap,添加某种索引出于性能原因的结构,或者包含Java类型)

我目前的想法是:

  • 使用各种访问器方法为整体结构定义协议
  • 创建一个导航数据结构的迷你函数库,例如(query-substructure-abc param1 param2)
  • 使用defrecord或deftype实现数据结构,并使用定义的协议方法来使用迷你库

我认为这会有效,但我担心它开始看起来像很多"胶水"代码.它也可能反映了我对面向对象方法的更多熟悉.

在Clojure中推荐的方法是什么?

encapsulation abstraction clojure data-structures

14
推荐指数
1
解决办法
804
查看次数