问题标签 [red]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rebol - 解析字符串以查找第一个重复字符 - 函数式与程序式编码风格
我想解析一个字符串以查找在一(character, n)
组中找到的前 N 个重复字符。
例如,for "ozzllluu"
and sets ("u" => 2), ("d" => 2), ("l" => 3), and ("r" => 3)... 我想找到“lll”,因为它是 3 个字符并且发生在两个“u”之前。
程序风格解决方案:
我将如何使用规则做同样的事情parse
?
简而言之:
parse
在 (character ,n) 集中找到的第一个 n 个重复字符的字符串- “function”现有的程序代码
- dogfood 变成了 Rebol/Red!
parsing - 红色的递归解析
我想从输入中解析跳过 Forth 风格的 if,Forth 风格意味着每个 if 都以 开头if
和结尾then
,假设所有输入都是正确的,不需要处理不匹配。
问题是每个部分都if
可以递归地包含任意数量的 other if
。
这是我对测试用例的最佳解决方案:
输出是:
所以他们中的三个失败了,因为它们在一个和另一个5
之间包含了一些东西(在这种情况下) 。then
可能修复非常简单和明显,但我现在看不到它。如果可能的话,你能帮我解决上面的规则,或者显示一个通过所有测试的不同规则吗?
newline - 红色如何将换行符写入输出文件
我在 Windows 中工作并使用红色将行附加到文本文件中
write/append/lines %MC_testfile.txt "在此处输出文本"
并且输出文本已适当附加但不在新行上。如何在新行上获取附加文本?
rebol - 改变路径或细化
我想将a/b
块内部更改为a/c
(甚至可能a
)
我这样做的正常方法是change
:
但它只改变了第一部分,a
即c
:
无法访问路径test/2
:
reflection - 哪些情况难以区分代码和数据?
据说代码是 Rebol 和 Red 中的数据(反之亦然,即同音符号)。此外,据说无法区分两者。我的理解是这里有两种情况:
- 从代码和数据的混合中 确定代码
- 从代码和数据的混合中 确定数据
代码和数据的混合是我的名字,外人通常称之为 Rebol 代码,而有经验的 Rebol 程序员则说是数据(没有代码,只有数据)
动机
代码与数据的区别使编程语言中的某些功能更容易。例如,提到了反汇编(sbcl 具有该disassemble
功能)。
问题
这些有问题的案例有哪些例子?
语境:
来自 2017 年 3 月 15 日下午 3:32 的聊天:(强调我的)
Didec:你忘记了 Redbol 中没有代码,只有数据。
Maximvl:嗯,CL 和 SBCL 都是一样的
在 Lisp 语言中不一样,“代码”和“数据”[在 Lisp 中] 之间存在区别,因为代码必须以call开头。Redbol 对代码没有这样的限制,这使得它非常不同。
还:
此外,上下文和动态绑定使其更加灵活,但同时,像在您的 CL 示例中那样直接转换为低级汇编代码是不可能的。
旁白:这是否意味着 Rebol 比 Lisp 更具有谐音性?
red - 如何将视图转换为红色的窗格或面板
所以我有一个当前正在工作并且看起来像我想要的视图。我想做的是将它包含的内容包装在一个变量中并将其放在选项卡面板中。为此,我相信我需要将其转换为面板或类似的东西。但我不确定如何。
这里的景色,
这是选项卡面板
它将进入名为“File1”的第一个选项卡内。到目前为止,我的尝试给了我一个编译器错误,告诉我我试图创建的面板没有价值。
此外,由于我仍在学习红色,因此也将不胜感激有关语法和编码风格的提示。
更新:这是我想将它们组合起来的方式:
如果我这样做, p 永远不会显示。
red - 红色 vid 如何通过按 Enter 键将焦点从一个字段更改为另一个字段
运行此代码时,光标获得焦点f1
但我想按回车键,焦点将在f2
. 我怎样才能做到这一点?
red - 红色 vid 模态窗口打开了多个
问题是如果我单击按钮 4 次,它将创建 4 个模式窗口。但是如果 1 个模态窗口已经打开,我不想要其他模态窗口。我该怎么做
red - 带有最大化的红色 vid 打开窗口
运行此代码时,它将以默认大小打开窗口:
如果明确给出大小,它将打开一个具有该大小的窗口:
但是如何打开最大尺寸/最大化的窗口?