gpt4 book ai didi

recursion - 使用 Spectre 递归地改变 map 中的值

转载 作者:行者123 更新时间:2023-12-04 15:32:11 26 4
gpt4 key购买 nike

完整的 Clojure 新手在这里。这是一个简单的问题,但我似乎无法理解:

鉴于我有一个未知深度的嵌套 hasmap,我如何使用 Spectre 的 transform() 来改变数据结构的值?我想这里需要一个递归路径,但我无法让它工作。一个工作示例是我所追求的,不幸的是,文档中没有。

(在递归映射上有一个 example 用于 set-val,但我不知道如何将其转换为转换用例)

编辑:要求提供更多详细信息,因此它们是:我对一种变换形式很感兴趣,它可以改变嵌套 map 的所有值——任何深度)。例如,此转换将能够增加以下映射(以及任何其他嵌套映射)中的所有值:

{:a 1 :b {:c 2 :d {:e 3}}} 
AND
{:a 1 :b {:c 2}}
AND
{:a 1}

我感兴趣的代码行可能看起来像这样:

(transform <missing selector here> inc data)

最佳答案

使用 linked example :

(def MAP-NODES
(recursive-path [] p
(if-path map?
(continue-then-stay MAP-VALS p))))
(transform [MAP-NODES MAP-VALS number?] inc data)

关于recursion - 使用 Spectre 递归地改变 map 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61038426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com