Clojure中的惰性自递归数据结构

偷了

有没有一种方法可以在Clojure中描述任意的惰性自递归数据结构?举例来说,我想做这样的事情:

(def inf-seq (fn rec [] (lazy-seq (cons 42 (rec)))))
(take 3 (inf-seq))

但是有一张地图:

(def inf-map (fn rec [] (??? {:a (rec) :b 42})))
(get-in (inf-map) [:a :a :a :b])
詹斯

序列懒惰不适用于Clojure中的延迟函数求值,显然,您需要构造无限嵌套的图。

尝试使用延迟:

user=> (def inf-map (fn rec [] {:a (delay (rec)) :b 42}))
#'user/inf-map
user=> (inf-map)
{:a #<Delay@4e9f9a19: :pending>, :b 42}
user=> @(:a (inf-map))
{:a #<Delay@5afd479c: :pending>, :b 42}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Clojure中的惰性自递归数据结构

来自分类Dev

Clojure:惰性序列的基本数据结构是什么?

来自分类Dev

数据结构的惰性评估

来自分类Dev

Python中递归数据结构的好处?

来自分类Dev

在C中搜索递归数据结构

来自分类Dev

Clojure规范,用于递归定义的数据结构中节点之间的依赖性

来自分类Dev

类别:递归数据结构

来自分类Dev

数据结构,递归函数

来自分类Dev

Clojure数据结构转换

来自分类Dev

在递归通用数据结构中对对象进行排序

来自分类Dev

在Perl中缩进并递归打印数据结构

来自分类Dev

在C中创建递归数据结构的方法

来自分类Dev

在递归通用数据结构中对对象进行排序

来自分类Dev

在树数据结构中添加节点时递归

来自分类Dev

Clojure中持久数据结构的内存共享

来自分类Dev

什么定义了Clojure中的“持久”数据结构?

来自分类Dev

如何比较Clojure中的数据结构并突出显示差异

来自分类Dev

Clojure中的向量使用什么数据结构?

来自分类Dev

递归数据结构,无需使用指针

来自分类Dev

为递归数据结构定义`Codec`

来自分类Dev

递归数据结构的前向声明

来自分类Dev

freepascal:JSON和递归数据结构

来自分类Dev

JavaScript - 递归构建树数据结构

来自分类Dev

在MapDB中使用Clojure的数据结构

来自分类Dev

在MapDB中使用Clojure的数据结构

来自分类Dev

Rascal中的数据结构

来自分类Dev

C ++中的数据结构

来自分类Dev

Cassandra 中的数据结构

来自分类Dev

将元数据放在Clojure中的var与数据结构之间