在带有数字块的红色语言中使用“解析”

问题描述

我模仿了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:我说“推进”是因为它确实没有,插入发生在头部。

要实现您的目标,您需要使用 2 转义 quote

>> also block: [1 2 3] parse block [to quote 2 insert 4]
== [1 4 2 3]

仅供参考,Parse 有官方 reference documentation