red - 使用带有数字块的红色语言中的“解析”
问题描述
我模仿来自 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
:我说“推进”是因为它确实没有,插入发生在头部。
- 这意味着
要实现您想要的,您需要2
使用以下命令进行转义quote
:
>> also block: [1 2 3] parse block [to quote 2 insert 4]
== [1 4 2 3]
仅供参考,Parse 有官方参考文档。
推荐阅读
- node.js - Puppeteer 阻塞事件循环
- c# - 无法解决此错误,“没有为此 DbContext 配置数据库提供程序”
- php - CSS / Bootstrap 显示问题和错误
- r - 摆脱带有部分字符串的行
- c# - 从 ASP.NET Core 中 ActionExecutionContext 的 HttpContext 获取 RawBody
- android-fragments - 如何销毁使用 fragmentstateadapter (viewpager2) 创建的片段
- javascript - 如何在 puppeteer 的评估功能中评估从父页面的 url 检索到的页面
- php - Laravel 事件调度断言失败
- u-sql - U-SQL 根据 3 个唯一列插入现有文件中不存在的数据
- swift - 在ios中的mapbox导航期间执行发布请求