在红色语言中使用 '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".

我的代码有什么问题?以及如何得到我想要的结果?

  1. to将输入匹配到指定的规则,直到成功或到达终点。
  2. 2匹配指定次数。
  3. insert 4 在当前位置插入一个值,并且总是成功。
    1. 这意味着2 insert 4插入两个4并成功。
    2. 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.