不,unfold
在Clojure中未实现。它由amalloys flatland.useful库提供,根据CrossClj的介绍,它具有广泛的用途。看到您链接的博客文章提供了对该主题的相当深入的探索,我怀疑您的问题比直接回答还不能满足您的需求...您是否想到了一些iterate
不足之处?还是对名称或行为iterate
不完全感到失望unfold
?
(defn fib-step [[a b]] [b (+ a b)]) (take 10 (map first (iterate fib-step [0 1]))) (take-while (complement neg?) (iterate dec 5))
我更喜欢使用iterate
这些示例,因为iterate
它已经是核心。我可以看到人们更喜欢unfold
他们是否更熟悉。
有许多库提供“本应存在于内核中的内容”,例如https://weavejester.github.io/medley/medley.core.html。在https://crossclj.info/上进行的快速搜索显示https://github.com/amalloy/useful包含flatland.useful.seq / unfold,尽管我没有使用过,但它似乎是Clojure核心贡献者的出色实现并附带其他一些不错的东西来启动。
不,unfold
在Clojure中未实现。它由amalloys flatland.useful库提供,根据CrossClj的介绍,它具有广泛的用途。看到您链接的博客文章提供了对该主题的相当深入的探索,我怀疑您的问题比直接回答还不能满足您的需求...您是否想到了一些iterate
不足之处?还是对名称或行为iterate
不完全感到失望unfold
?
(defn fib-step [[a b]] [b (+ a b)]) (take 10 (map first (iterate fib-step [0 1]))) (take-while (complement neg?) (iterate dec 5))
我更喜欢使用iterate
这些示例,因为iterate
它已经是核心。我可以看到人们更喜欢unfold
他们是否更熟悉。
有许多库提供“本应存在于内核中的内容”,例如https://weavejester.github.io/medley/medley.core.html。在https://crossclj.info/上进行的快速搜索显示https://github.com/amalloy/useful包含flatland.useful.seq / unfold,尽管我没有使用过,但它似乎是Clojure核心贡献者的出色实现并附带其他一些不错的东西来启动。