【问题标题】:Use 'parse' in Red language with number block使用带有数字块的红色语言中的“解析”
【发布时间】:2021-04-01 03:25:57
【问题描述】:

我模仿来自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".

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

【问题讨论】:

    标签: red


    【解决方案1】:
    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

    【讨论】:

    • 非常感谢您的解决方案和对parse的引用!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多