Change path or refinement

混江龙づ霸主 提交于 2019-12-02 06:40:36

问题


I want to change the a/b inside a block to a/c (or possibly even a)

The normal way I'd do this is with change:

test: [a/b]
change test/1 'c

but it only changes the first part, i.e. a to c:

>> test
== [c/b]

Can't access the path with test/2 either:

>> reduce [test/1 test/2]
== [a/b none]

回答1:


There are 2 things to note here:

First, path! is a series, so in this case, a nested series. Have to actually access the second element inside the first element:

>> test: [a/b] test/1/2
== b

Secondly, use the property of series that make them behave like pointers and access the next element, instead of accessing it directly:

>> next test/1
== b

So the code becomes:

>> change next test/1 'c test
== [a/c]


来源:https://stackoverflow.com/questions/42696779/change-path-or-refinement

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!