在红色语言中使用 'parse' 和数字块
Use 'parse' in Red language with number block
我模仿了Helpin'Red的后续代码
a: "big black cat"
parse a [ to "black" insert "FAT "]
print a
big FAT black cat
和我的一样:
b: [1 2 3]
parse b [to 2 insert 4]
print b
4 4 1 2 3 ;; but what I mean is "1 4 2 3".
我的代码有什么问题?以及如何得到我想要的结果?
to
将输入匹配到指定的规则,直到成功或到达终点。
2
匹配指定次数。
insert 4
在当前位置插入一个值,并且总是成功。
- 这意味着
2 insert 4
插入两个4
并成功。
to
将输入“推进”到匹配的 2 insert 4
:我说“推进”是因为它确实没有,插入发生在头部。
要达到你想要的效果,你需要使用 quote
:
转义 2
>> also block: [1 2 3] parse block [to quote 2 insert 4]
== [1 4 2 3]
仅供参考,Parse 有官方 reference documentation.
我模仿了Helpin'Red的后续代码
a: "big black cat"
parse a [ to "black" insert "FAT "]
print a
big FAT black cat
和我的一样:
b: [1 2 3]
parse b [to 2 insert 4]
print b
4 4 1 2 3 ;; but what I mean is "1 4 2 3".
我的代码有什么问题?以及如何得到我想要的结果?
to
将输入匹配到指定的规则,直到成功或到达终点。2
匹配指定次数。insert 4
在当前位置插入一个值,并且总是成功。- 这意味着
2 insert 4
插入两个4
并成功。 to
将输入“推进”到匹配的2 insert 4
:我说“推进”是因为它确实没有,插入发生在头部。
- 这意味着
要达到你想要的效果,你需要使用 quote
:
2
>> also block: [1 2 3] parse block [to quote 2 insert 4]
== [1 4 2 3]
仅供参考,Parse 有官方 reference documentation.